模型類 , 即用來存放資料的類, 繼承自nsobject.
所謂模型,其實就是資料模型, 專門用來存放資料的物件,用它來表示會更加專業.
模型設定資料和取出資料都是通過它的屬性, 屬性名如果寫錯,編譯器會馬上報錯,因此保證了資料的正確性.
使用模型訪問屬性時, 編譯器會提供一系列的提示,提高編碼效率.
字典轉模型應該提供乙個可以傳入字典引數的構造方法. 一般提供如下兩個方法(乙個物件方法和乙個類方法) (為了與蘋果公司原**保持一致性,方法名稱盡量模仿蘋果公司規範來書寫)
-(instancetype)initwithdict:(nsdictionary *)dict;
+(instancetype)***withdict:(nsdictionary *)dict;
instancetype
:在型別表示上,跟id一樣,可以表示任何資料型別;
instancetype
只能用在返回值型別上,不能像id一樣用在引數型別上;
instancetype比id多乙個好處:編譯器會檢測
instancetype的真實型別.
根據資料字典的鍵值建立對應的資料模型. 在.h檔案中宣告模型屬性及方法 .如下
/** * 名稱
*/@property (nonatomic, copy) nsstring *name;
/** * 圖示
*/@property (nonatomic, copy) nsstring *icon;
/** * 標題
*/@property (nonatomic, weak) nsstring *title;
/** * 答案
*/@property (nonatomic, copy) nsstring *answer;
/*** 通過字典來初始化模型物件
* * @param dict 字典物件
* * @return 已經初始化完畢的模型物件
*/- (instancetype)initwithdict:(nsdictionary *)dict;
@end
字典轉模型實現方法如下:
- (instancetype)initwithdict:(nsdictionary *)dict
return self;}
@end
但是kvc的使用是有條件的 ;
由於kvc會將字典所有的鍵值對(key-value)賦值給模型對應的屬性
.只有當
1> 字典的鍵值對 個數 跟模型的 屬性個數 相等
2> 屬性名 必須和字典的 鍵值對 一樣
時才可以使用kvc.
/*** 字典轉模型,模型再次存入陣列中 重寫陣列的set方法
*/-(nsarray *)questions
// 賦值 _questions = questionarray; } return _questions; }
OC學習 字典
1.概念 字典是關鍵字key及其定義的值value所構成的集合.即它是由key value組成的鍵值隊的集合.通常來講,key一般是nsstring型別,value是oc中任意的物件.對於字典來講,我們就是通過key來訪問value.2.為什麼在有了陣列後,還需要有字典呢?在有大量的資料或頻繁的查詢...
OC篇學習 字典
字典是無序存在的 字典中得key值和value值是成對出現的 鍵值對 字典中得key值必須是唯一的 不能夠重複 不可變的字典 在初始化字典的時候key值在後 value在前 在控制台輸出的時候 key值在後 value在前 如果key值重複的出現 程式在編譯的時候 認為這個key值已經存在 不會再去...
python學習 字典
字典的形式 形式 dict key 鍵 可以理解為代號 value 值 代號所指代的內容 字典的特點 1 字典是 無序 的,它不能通過偏移來訪問,只能 通過鍵來訪問 2 可以巢狀 3 可變資料型別,可以在原地修改裡面的內容。4 組成字典的 鍵 必須是 不可變 的資料型別,比如,數字,字串,元組等 列...