基于XCode開發(fā)iPhone APP程序結(jié)構(gòu)教程
基于XCode開發(fā)iPhone APP程序結(jié)構(gòu)教程是本文要介紹的內(nèi)容,以下分析是基于Xcode進(jìn)行iphone開發(fā)的代碼。通過Xcode IDE在設(shè)計(jì)時(shí)可以自動(dòng)做很多事;但是這些事意義何在,怎么將整個(gè)APP貫穿起來。分析了解之后,就可以知道應(yīng)用程序大致結(jié)構(gòu),運(yùn)作機(jī)制?;诖?,以后也就只需了解特定的控件或功能庫的使用了。
IPhone程序的結(jié)構(gòu)
所有的iphone程序,都是桌面視窗程序;在可見性方面看,所見的一切都是窗口,因?yàn)樗鼈兌祭^承于共同的基類UIControl:
每個(gè)Iphone程序都有一個(gè)主窗口;
而每個(gè)顯示的子視窗也是窗口;
每個(gè)控件也都是子窗口
以通用的單視窗程序和多視窗程序舉例而言:
對(duì)于單視圖程序而言,就是主窗口內(nèi)部包含子視窗;
對(duì)于多視窗程序而言,
就是主視圖包含一個(gè)特殊的子視窗:多視窗控制器。
而多視窗控制器則包含每個(gè)子視窗
因此,可以說,窗口之間存在父子包含關(guān)系:
一個(gè)主窗口僅且只能包含一個(gè)子視窗
該子視窗可以是一個(gè)具體的子視窗;這就是單視窗程序
該子視窗是一個(gè)多視窗控制器;這就是多視窗程序
一個(gè)子視窗可能包含著多個(gè)控件,這些控件也都是子窗口
多視窗控制器也是一個(gè)子視窗;它的作用是將子視窗當(dāng)作其一個(gè)個(gè)控件來管理
理解如上邏輯組織結(jié)構(gòu),就可以看看在物理上是如何通過文件來表現(xiàn)的。
IPhone程序的物理組織
子視窗
每個(gè)子視窗由兩部分組成:資源文件和控制文件。分別介紹如下:
可見操作起來是很麻煩,完全不如MFC中的自動(dòng)一步到位;而且每類控件對(duì)應(yīng)的類型也不能自動(dòng)提示出來
MVC層次
V – 視圖層
C – 控制層
MFC比較
資源文件 rc
映射類
與MFC區(qū)別在于:
Xlb中既包括資源信息,也包括控件和成員對(duì)象映射信息
而MFC中將控件和成員映射信息放在了對(duì)應(yīng)類中
可以看出子視窗的兩個(gè)作用:界面和控制;控制負(fù)責(zé)管理子窗口控件對(duì)象及其消息。
主窗口
主窗口的作用也是兩個(gè):界面和控制。
界面還是通過xlb資源文件來實(shí)現(xiàn);只不過該界面很簡單,只是負(fù)責(zé)放哪個(gè)子視窗。該文件名固定是MainWindow.xlb
控制則沒有單獨(dú)的控制文件。因?yàn)槠渥饔煤芎唵?,只是?fù)責(zé)放哪個(gè)子視窗,所以完全通過UIApp的接口來實(shí)現(xiàn)即可。也就是一個(gè)APP的代理類。代理類的文件名就是“projectname”AppDelegate.
應(yīng)用程序
每個(gè)應(yīng)用程序還有些別的固定文件:
main.m 應(yīng)用程序起始文件
Info.plist 應(yīng)用程序的一些配置信息:例如圖標(biāo)等。
了解了如上文件組織結(jié)構(gòu),分析一個(gè)例子則可以很快知道大致框架;各個(gè)功能各依存于何處。也可以了解一些Xcode交互幕后生成代碼的意義。
多視窗程序就是出現(xiàn)多個(gè)子視窗;而多視窗控制器就是Iphone提供的有限幾個(gè)。
Iphone開發(fā)的參考體系
界面布局控件
主要是特殊的控件、特殊的事件響應(yīng)
持久層
應(yīng)用程序在Iphone中的部署以及訪問局限性
繪圖
關(guān)于以下圖的個(gè)人理解
view 類似于window中的控件(例如對(duì)話框),可以添加一些響應(yīng)事件,同時(shí)有兩個(gè)文件.h和.m兩個(gè)文件對(duì)象.
File's Owner類似window的類向?qū)?,用來添加響?yīng)處理,同時(shí)操作.h和.m文件
小結(jié):基于XCode開發(fā)iPhone APP程序結(jié)構(gòu)教程的內(nèi)容介紹完了,希望本文對(duì)你有所幫助!