IOS筆記1

來源:互聯網
上載者:User

標籤:

@property 參數

copy:NSString;

strong:一般對象

weak:UI控制項

assign:基礎資料型別 (Elementary Data Type)

 

instancetype

instancetype在類型表示上,跟id一樣,可以表示任何物件類型

 

instancetype只能用在傳回值類型上,不能像id一樣用在參數類型上

 

instancetype比id多一個好處:編譯器會檢測instancetype的真實類型

 

字典轉模型:

使用字典的壞處

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

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

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

手敲字串key,key容易寫錯

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

 

使用模型的好處

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

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

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

app.name = @"Jack”;

NSString *name = app.name;

 

storyBoard:描述軟體介面,重量級,一般用來描述整個軟體的所有介面

xib:描述軟體介面,輕量級,一般用來描述局部介面

xib的使用

Xib檔案可以用來描述某一塊局部的UI介面

 

Xib檔案的載入

方法1

NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"MJAppView" owner:nil options:nil];

這個方法會建立xib中的所有對象,並且將對象按順序放到objs數組中

(如果xib如右圖所示,那麼objs數組中依次會有3個對象:1個UIView、1個UIButton、1個UISwitch)

 

方法2

bundle參數可以為nil,預設就是main bundle

UINib *nib = [UINib nibWithNibName:@"MJAppView" bundle:[NSBundle mainBundle]];

NSArray *objs = [nib instantiateWithOwner:nil options:nil];

 

在開發階段,面向開發人員的是xib檔案; 當把應用裝到手機上時,xib檔案就會轉為nib檔案

 

使用xib封裝一個自訂view的步驟

1> 建立一個繼承UIView的自訂view,假設類名叫做(MJAppView)

2> 建立一個MJAppView.xib檔案來描述MJAppView內部的結構

3> 修改UIView的類型為MJAppView真是類型

4> 將內部的子控制項跟MJAppView進行屬性連線

5> MJAppView提供一個模型屬性

6> 重寫模型屬性的set方法,因為在set方法中可以拿到外界傳遞的模型資料

7> 把模型資料拆開,分別設定資料到對應的子控制項中

8> 補充:提供一個建立MJAppView的類方法,將讀取xib檔案的代碼屏蔽起來

IOS筆記1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.