OC學習 字典轉模型

2021-07-04 04:59:06 字數 1537 閱讀 3361

模型類 ,  即用來存放資料的類, 繼承自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 組成字典的 鍵 必須是 不可變 的資料型別,比如,數字,字串,元組等 列...