iOS 開發,NSDictionary 和 Model 哪個好?

時間 2021-05-31 13:46:28

1樓:精緻的developer

首先要從設計模式入手,現在主流的設計模式就是MVC,也有MVP,MVVM的,其實就是都是少不了建模的,建模的有點上面好多人也說了,對於有開發經驗的人來說,好處更是不言而喻.至於說贊成用NSDictionary的,我只能說....

2樓:盛夏光年

混用吧,一般資料比較規範的,如使用者資料,我都是用JSModel來解析。資料結構比較亂或者臨時性的那種資料,就直接用字典取出來就可以了。

ps:一般cell中顯示的資料我都是用Model來儲存的。

3樓:

介紹幾點Model的好處

1、可讀性:想象你接手了乙個老專案,在乙個新的邏輯中,有個userDictionary,這個時候需要取使用者的生日,到底是 userDictionary[@「birthday"]還是userDictionary[@「Birghday」],還是…

2、防止型別錯誤:比較常見是將NSNumber當成NSString呼叫,使用了 NSString 的方法,結果 Crash了。

3、其實Model 和 Dictionary 可以方便的轉換,並且自動實現了 NSCopy 和 NSCoding ,具體參考: Mantle/Mantle · GitHub

4樓:烏鴉Munin

[dic objectForKey :@「key」]可以直接寫成 dic[@「key」]

其實你自己用NSDictionary寫一遍,然後用model重構一遍,你就會發現,可讀性和便於維護性還有擴充套件性都不是乙個級別的,而且用物件傳接值很方便的。

直接set方法裡面寫。帥的要死。

5樓:Anson

如果這個NSDictionary層層巢狀,key值又長的話,一不小心很容易寫崩。而且單純用NSDictionary的話,你的下乙個接手人/隊友很難看出這個NSDictionary是幹嘛的

6樓:白起

明確反對目前所有其它答案。我贊成先使用NSDictionary。

大部分資料也就是臨時用用,建了model也是空的,除了驗證合法性之外沒有自己的方法。這種model沒有存在的必要。

少數資料你會經常反覆使用,並且建了乙個物件(model), 新增了一些自身的方法。這時候你自然就會給它新增乙個initWithDictionary:方法。

程式設計的思潮不是只有物件導向一種,不是所有東西都要物件導向。我們得根據實際需要,去選擇最合適的方式來做事。能又快又好的解決實際問題,幹嘛要扯上物件導向呢。

7樓:付三歲

脫離具體問題瓶頸談效能,全是耍流氓。

也不一定那個好,具體問題具體分析,如果你業務特別簡單,就幾個字段,並且穩定,直接來回傳遞NSDictionary也沒什麼。如果業務複雜多變,需要資料模型梳理,轉化下Model可能更好。怎麼合適怎麼來唄。

畢竟Code是要給人維護的。

8樓:學院路吳彥祖

model好.

你自己轉換1W組資料,用model跟用字典對比一下時間,會發現影響微乎其微.

有這時間不如多做幾個俯臥撐鍛鍊身體來得實在.

9樓:李黑黑

你們專案經理是老古董,讓他看看這幾個專案

Mantle/Mantle · GitHubicanzilb/JSONModel · GitHubRestKit/RestKit · GitHub哪乙個不是幾K的Star

不要在專案裡面盲目的追求所謂效能

10樓:

猜測,要麼,你的專案經理水平不怎麼地,要麼,你的專案經理認為你的水平還不行,model你駕馭不了,先用dictionary這種簡單的,要麼,這是個外包公司,快速做完就行,不求細節

model比map的優勢是很明顯的

1,更安全。由於資料都是處理過的,那麼錯誤的資料、錯誤的型別什麼的,都已經遮蔽過了

2,可以在基礎資料上更方便的封裝出一些 "高階資料",比如使用者類,可以用id、token之類的字段封裝出乙個hasLogin的字段

3,對使用者友好,對維護友好,不然用的人各種解析,而且還得寫判斷邏輯

比如map裡面有欄位a和b,某乙個場景需要用到這兩個並且都非空,於是乎

a = (A)map[a], //帶型別轉化

b = (B)map[b];

if(a && b) else

iOS開發出現報錯 Command bin sh failed with exit code 1

菜夫 Unknown option p Type shasum h for help Unknown option p Type shasum h for help Unpacking Users bubu Library Caches com.facebook.ReactNativeBuild d...

大三轉iOS晚嗎?iOS開發應該注重ObjC還是Swift的學習呢?

直接學習swift吧。這個不錯,swift所有控制項用法。專門用來快速學習swift的。如果有幫助,記得start收藏 GitHub akixie UIKit Catalog Swift UIKit Controls,Written in Objective C and Swift,快速上手swif...

怎樣提高iOS開發基本功?

Rany 其實面試的時候回答問題也可以舉例你之前做過的一些專案或者demo運用到的有關的東西,個人覺得結合實際運用來回答會順暢一點! 利炳根 Objective C高階程式設計 iOS與OS X多執行緒和記憶體管理 日 Kazuki Sakamoto,日 Tomohiko Furumoto 摘要書評...