萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 安卓開發 >> 應該了解的iOS應用開發基礎知識

應該了解的iOS應用開發基礎知識

本文導航

1、首頁2、iOS應用開發基礎知識-2

本文的目的就是幫助各位設計師在最短的時間內,以實戰的方式探索iOS應用開發基礎知識。希望文章內容對大家有所幫助。

聲明屬性(Property)與方法(Method)

一個“類”通常包含特定的“屬性”和“方法”。我們可以將“屬性”理解為“類”所擁有的特性特征,而“方法”則是指“類”能做些什麼。

當我們向ContactViewController中添加按鈕時,我們需要將這個按鈕聲明為ContactViewController類的屬性,並通過“方法”告訴按鈕在被點擊時應該做怎樣的反應。

在ContactViewController.h文件中,我們可以看到如下代碼:

iOS應用開發基礎知識

其中,第一行代碼的作用是讓我們的類可以訪問UIKit框架當中的各種預置的UI類。

接下來一行(@interface)的作用是將ContactViewController聲明為UIViewController的一個子類。UIViewController是在UIKit庫中預先定義的,它的子類可以繼承它的所有特性(包括屬性和方法)。

我們可以在@interface與@end之間聲明各種自定義的屬性和方法。按住control鍵,從 ContactViewController.xib裡的“WWW”按鈕上拖出一條導線,一直拉到.h文件的代碼中@interface與@end之間的 部分,釋放。這時會出現一個對話窗:

確保“Connection”當中所選的是“Outlet”,並在“Name”裡輸入“websiteButton”,點擊“Connect”,Xcode會自動生成一段代碼。

接下來再執行一次相同的拖放操作,這次,在對話窗中為“Connection”選擇“Action”,並在“Name”中輸入“openWebsite”,點擊“Connect”,Xcode同樣會自動生成一段代碼。

iOS應用開發基礎知識

到目前為止ContactViewController.h中的代碼看上去應該是這樣的:

還不賴,不過這些代碼都是什麼意思?

@property用來聲明一個新的屬性,括號中是兩個參數,其中“retain”涉及內存管理,我們將在後文中講到;而“nonatomic”則 與多線程管理相關,多數的屬性都要聲明為nonatomic,禁用多線程。接下來是關於返回類型的聲明,其中“IBOutlet”代表這個屬性是綁定於用 戶界面中某個特定的控件的;“UIButton *websiteButton”的作用是將當前屬性命名為“websiteButton”,並使其繼承UIKit中定義的UIButton類。

接下來一行代碼用來聲明新的方法。其中的“- (IBAction)”同樣用來將方法與.xib文件中的界面控件綁定起來。“openWebsite”是這個方法的名稱,冒號後面的“(id)sender”是參數,用來傳遞產生動作的對象信息,不過我們現在用不到它。

也許你已經注意到了,我們在創建View Controller類的時候,名稱都是以大寫字母開頭的,但屬性和方法的名稱卻不是這樣。這是面向對象編程語言的一種公約,即“類的命名以大寫字母開頭,屬性(變量)和方法(函數)的命名以小寫字母開頭”。

我們之前演示的“拖動+自動生成代碼”的方法是很方便的。我們當然也可以自己手動編碼,只是使用輔助編輯器會更加快捷一些。

屬性合成(Synthesis)與內存管理

現在,我們將編輯器切換回標准模式(Standard Editor),彈擊選中ContactViewController.m,在大約12行的地方,你可以看到系統幫我們自動生成的代碼:

這會告訴編譯器在構建應用的時候為屬性生成設置器(setter)與訪問器(getter),我們不需要手動編寫代碼就可以使程序具有訪問和設置屬性值的能力。

再下面,找到這兩行代碼:

覺得眼熟?之前在ContactViewController.h當中,系統確實自動生成了類似的代碼,不過在.h文件中的代碼只是一種“聲明”,真正編寫方法函數還是要在.m文件中進行。具體來說,我們需要將按鈕的反映行為編寫到這裡。

copyright © 萬盛學電腦網 all rights reserved