資料模型代替字典

2021-07-02 23:11:15 字數 2112 閱讀 7712

dict[@"name"] = @"jack";

nsstring *name = dict[@"name"];

- 手敲字串key,key容易寫錯

- key如果寫錯了,編譯器不會有任何警告和報錯,造成資料的讀取或者設定錯誤.

shopdata.icon = @"danjianbao"

; nsstring *name = shopdata.name

;

字典轉模型

// 模型檔案xmgshop.h

@property (nonatomic, strong) nsstring *name;

@property (nonatomic, strong) nsstring *icon;

-  xmgshop.name = dict[@"name"]

- 乙個xmgshop物件對應乙個dict

- 當取字典中的"單肩包"時,不再用dic[@"name"],而是用xmgshop.name

// 在控制器中進行模型轉換

// 獲得index位置對應的商品資料

nsdictionary *shop = self

.shops[index];

xmgshop *shopdata = [[xmgshop alloc]init];

shopdata.name = shop[@"name"];

shopdata.icon = shop[@"icon"];

解決辦法:

-模型可以提供乙個傳入引數的構造方法

- (instancetype)initwithdict

:(nsdictionary *)dict;

+ (instancetype)***withdict

:(nsdictionary *)dict;

/*類方法名稱以***開頭,***指去掉字首的類名

比如:[nsarray arry]

[nsstring string]

....

*/

#import 

@inte***ce

wqshopdata : nsobject

/***/

@property (nonatomic, strong) nsstring * icon;

/**名字*/

@property (nonatomic, strong) nsstring * name;

- (instancetype)initwithdic:(nsdictionary *)dic;

+ (instancetype)shopwithdic:(nsdictionary *)dic;

@end

#import "wqshopdata.h"

@inte***ce

wqshopdata ()

@end

@implementation

wqshopdata

- (instancetype)initwithdic:(nsdictionary *)dic

return

self;

}// 便利構造器

+ (instancetype)shopwithdic:(nsdictionary *)dic

@end

// 控制器中使用

nsdictionary *shop = self

.shops[index];

xmgshop *shopdata = [[xmgshop shopwithdict:shop];

// 之後可以直接用shopdata.icon 和shopdata.name'

label.text = shopdata.name

// 懶載入**模型資料,

- (nsarray *)shopsdata

]; }

return _shopsdata;

}

概念資料模型 邏輯資料模型 物理資料模型

概念資料模型設計與邏輯資料模型設計 物理資料模型設計是資料庫及資料倉儲模型設計的三個主要步驟。在資料倉儲領域有乙個概念叫conceptual data model,中文一般翻譯為 概念資料模型 概念資料模型是終端使用者對資料儲存的看法,反映了終端使用者綜合性的資訊需求,它以資料類的方式描述企業級的資...

概念資料模型,邏輯資料模型,物理資料模型

在資料倉儲領域有乙個概念叫conceptual data model,中文一般翻譯為 概念資料模型 概念資料模型是終端使用者對資料儲存的看法,反映了終端使用者綜合性的資訊需求,它以資料類的方式描述企業級的資料需求,資料類代表了在業務環境中自然聚集成的幾個主要類別資料。概念資料模型的內容包括重要的實體...

資料模型 概念資料模型,邏輯資料模型,物理資料模型

資料模型所描述的內容包括三個部分 資料結構 資料操作 資料約束。1 資料結構 資料模型中的資料結構主要描述資料的型別 內容 性質以及資料間的聯絡等。資料結構是資料模型的基礎,資料操作和約束都建立在資料結構上。不同的資料結構具有不同的操作和約束。2 資料操作 資料模型中資料操作主要描述在相應的資料結構...