Interface Builder、頭文件和實現文件
?
首先,這些.xib、.h和.m文件是什么?
?
.xib - 對于.xib后綴的文件,是Interface Builder文件,存放應用程序的用戶界面(UI),當你點擊.xib 文件時,Xcode 自動切換到Interface Builder 界面,你可以通過拖拉編輯應用程序的用戶界面。
?
.h和.m - .h后綴的文件是頭文件, .m 后綴的文件是實現文件。和大多數編程語言一樣,Object-C 源代碼文件分成2部分:接口文件和實現文件。
?
返回Object-C 代碼,類的接口定義在.h 文件中,使用 @interface 語法定義類的接口。看看HelloWorldViewController.h 文件,這是一個頭文件:
?
@interface HelloWorldViewController:UIViewController
?
- (IBAction)showMessage;
?
@end
?
具體的實現在HelloWorldViewController.m 實現文件中,代碼如下:
?
@implementation HelloWorldViewController
?
- (IBAction)showMessge
{
? ? .......
}
?
@end
?
從上面代碼可以看出,使用@implementation 語法定義一個實現。在showMessage方法里面,是實際的代碼,用來在屏幕上顯示警告消息。你可能沒有理解 showMessage 方法的每一行代碼。簡而言之, 它創建一個UIAlertView 視圖,標題位My First App,消息為Hello, World. 接著調用show方法,要求IOS在屏幕上顯示彈出消息。
?
觸摸和點擊的背后機制
?
在點擊Hello World按鈕之后,實際上發生了什么? Hello World按鈕如何調用showMessage方法,顯示Hello World 消息?
?
回想起你在InterfaceBuilder界面時,為HelloWorld按鈕和sendMessage方法建立了一個連接。再次打開HelloWorldViewController.xib 文件,選擇 Hello World 按鈕, 然后點擊工具區域(Utility Area) 的Send Event按鈕,打開Send Events窗口。
?
Send Events窗口顯示了事件和動作方法之間的所有連接。我們可以看到,Touch Up Inside 事件和 showMessage 方法之間建立了連接。 在IOS中,應用程序是事件驅動的。控件或對象(如UIButton) 監聽特定事件(如觸摸和點擊)。當事件出發時,對象會調用和事件關聯的預先設置的方法。
?
在我們的Hello World 應用程序中,當用戶提起在按鈕上的手指時,將觸發Touch Up Inside事件。結果是調用showMessage方法,顯示Hello World 消息。
?
下圖總結了整個事件流程:
?
Run 按鈕幕后機制
?
當你點擊Run按鈕時,Xcode自動啟動模擬器,并運行你的應用程序。但是幕后到底發生了什么呢?
?
整個過程可分為3個階段:編譯、打包和運行
?
編譯(Compile) - 你可以認為IOS 理解 Objective-C 代碼。實際上,IOS僅僅理解機器碼。 Object-C 代碼是適合開發人員來編寫和閱讀代碼的。為了讓IOS理解應用程序的源代碼,我們需要通過轉換過程將Objective-C代碼翻譯為機器碼。這個過程成為編譯。Xcode已經內置了編譯器來編譯源代碼。
?
打包 (Package) - 除了源代碼之外,應用程序通常還包含一些資源文件,如圖像文件、文件文件、xib文件等等。所有這些資源文件打包,創建一個最終的應用程序。
?
我們通常認為這兩個過程為構建過程(Build Process)。
?
運行(Run) - 實際啟動模擬器,并裝載你的應用程序。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
