用模型取代字典 實現九宮格介面

2021-06-19 04:06:01 字數 1854 閱讀 7882

一般情況下,設定資料和取出資料都使用「字串型別的key」,編寫這些key時,編譯器不會有任何友善提示,需要手敲

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

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

手敲字串key,key容易寫錯

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

使用模型的好處

所謂模型,其實就是資料模型,專門用來存放資料的物件,用它來表示資料會更加專業

模型設定資料和取出資料都是通過它的屬性,屬性名如果寫錯了,編譯器會馬上報錯,因此,保證了資料的正確性

使用模型訪問屬性時,編譯器會提供一系列的提示,提高編碼效率

1.plist檔案

2.字典轉模型的過程

模型應該提供乙個可以傳入字典引數的構造方法

- (instancetype)initwithdict:(nsdictionary *)dict;

+ (instancetype)***withdict:(nsdictionary *)dict;

3.**:

3.1模型類:

// 模型類:用來存放資料的類

#import /**

copy : nsstring

strong: 一般物件

weak: ui控制項

assign:基本資料型別

*//**

* 名稱

*/@property (nonatomic, copy) nsstring *name;

/** * 圖示

*/@property (nonatomic, copy) nsstring *icon;

/** * 通過字典來初始化模型物件

* * @param dict 字典物件

* * @return 已經初始化完畢的模型物件

*/- (instancetype)initwithdict:(nsdictionary *)dict;

@end

- (instancetype)initwithdict:(nsdictionary *)dict

return self;

}@end

3.2控制器類

//  mjviewcontroller.m

#import "mjviewcontroller.h"

@inte***ce mjviewcontroller ()

/** 存放應用資訊 */

@end

@implementation mjviewcontroller

- (void)viewdidload

}

// 4.賦值

}}@end

mvc是一種設計思想,貫穿於整個ios開發中,需要積累一定的專案經驗,才能深刻體會其中的含義和好處

mvc中的三個角色

m:model,模型資料

v:view,檢視(介面)

c:control,控制中心

mvc的幾個明顯的特徵和體現:

view上面顯示什麼東西,取決於model

只要model資料改了,view的顯示狀態會跟著更改

control負責初始化model,並將model傳遞給view去解析展示

Flex實現九宮格

關鍵點 利用了padding top和flex wrap wrap,當設定background color時,是包括盒子模型中的content和padding的,但是為什麼不設定height呢?因為父元素沒有高度,所以定義height 30 是沒有用的,且若想每個block都為正方形,最好的方式就是...

如何實現九宮格

九宮格容器是寬高相等的正方形,實現九宮格有幾種方法,這裡列舉一二 對於網格布局來說,grid 比 flex 更為方便,量更少,可以處理更為複雜的結構。如以下 square square inner grid 1234567 89效果 square 效果 除了浮動,這裡 li 也可以使用display...

九宮格布局

2009 08 25 15 15 27 九宮格是一種比較古老的設計,它最基本的表現其實就像是乙個三行三列的 其實它最初是在window的c s結構中用得比較多,比如我們經常看 到軟體中的乙個窗體,其實就是乙個九宮格的典型應用,因為窗體需要在八個方向拉伸,所以在c s軟體中大量採用這種技術來布局設計。...