iPhone開(kāi)發(fā)進(jìn)階(1)iPhone應(yīng)用程序項(xiàng)目構(gòu)成案例實(shí)現(xiàn)
iPhone應(yīng)用程序項(xiàng)目構(gòu)成案例實(shí)現(xiàn)是本文要介紹的內(nèi)容,主要是來(lái)了解和學(xué)習(xí)項(xiàng)目是如何構(gòu)成的,先來(lái)看詳細(xì)內(nèi)容。開(kāi)發(fā)iPhone應(yīng)用程序,首先接觸到的不是源代碼,而是項(xiàng)目工程文件,目錄。我們來(lái)看看它有怎樣的構(gòu)成。
iPhone應(yīng)用程序目錄構(gòu)成
iPhone應(yīng)用程序被放入一個(gè)叫做沙盒(sandbox)的具有安全性的構(gòu)造中。程序只能訪問(wèn)自己沙盒中的資源。
iPhone 應(yīng)用程序與 Mac OS 上的程序基本上相同、 只是程序目錄下有一些不同。可以通過(guò) AddressBook 等構(gòu)造訪問(wèn)其他的功能或構(gòu)造體。
iPhone 應(yīng)用程序的目錄構(gòu)造如下所示:
- /Applications/ [Application1]/ Application1.app Documents/
- Library/
- tmp/
- [Application2]/
- Application2.app
- Documents/
- Library/
- tmp/
工程項(xiàng)目的構(gòu)成
工程項(xiàng)目的構(gòu)成雖然根據(jù)程序不同而不同,但基本上都是基于MVC模型,所以按照 Model、Controller、View 來(lái)組織目錄形式。
比如以下的目錄構(gòu)成:
- Classes
- Libraries (各種中間件,程序庫(kù)等)
- JSON
- ImageStore
- 其他程序模塊
- Controllers (與 View Controller 相關(guān)的類)
- UIApplicationDelegate
- UIViewController
- Views (定制的視圖,程序界面)
- UITableViewCell的子類
- UIView的子類
項(xiàng)目文件構(gòu)成
接下來(lái)我們?cè)倏纯闯绦蚬こ讨羞€有什么:
- HelloWorld
- |-- Classes
- | |-- HelloWorldAppDelegate.h
- | |-- HelloWorldAppDelegate.m
- | |-- HelloWorldViewController.h
- | `-- HelloWorldViewController.m
- |-- HelloWorld.xcodeproj
- |-- HelloWorldViewController.xib
- |-- HelloWorld_Prefix.pch
- |-- Info.plist
- |-- MainWindow.xib|-- build
- | `-- HelloWorld.build`-- main.m
.pch
預(yù)編譯頭文件,win32里經(jīng)常會(huì)碰到,這里也有,包含了常用的頭文件。
.plist
包含了項(xiàng)目自身的特性,比如說(shuō)項(xiàng)目名稱,默認(rèn)加載的nib file,版本等。
.xib
程序的資源文件。用于簡(jiǎn)化編碼過(guò)程,提高開(kāi)發(fā)效率。
main.m
iphone應(yīng)用程序的入口,類似于C/C++中的main函數(shù)。
main函數(shù)如下所示:
- int main(int argc, char *argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- int retVal = UIApplicationMain(argc, argv, nil, nil);
- [pool release];
- return retVal;
- }
main函數(shù)的參數(shù) argc 以及 argv[] 與C語(yǔ)言中的意思一樣,支持命令行的輸入。
接下來(lái)創(chuàng)建一個(gè)NSAutoreleasePool對(duì)象,用來(lái)自動(dòng)管理程序的內(nèi)存。
- NSAutoreleasePool * pool = NSAutoreleasePool alloc] init];
最主要的是下面的 UIApplicationMain 的調(diào)用,通過(guò)它完成系統(tǒng)啟動(dòng)的過(guò)程,并形成一個(gè)事件驅(qū)動(dòng)。
- int retVal = UIApplicationMain(argc, argv, nil, nil);
小結(jié):iPhone應(yīng)用程序項(xiàng)目構(gòu)成案例實(shí)現(xiàn)的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!如果想繼續(xù)深入了解的話,請(qǐng)參考以下幾篇文章:
iPhone開(kāi)發(fā)進(jìn)階(2)iPhone應(yīng)用程序的啟動(dòng)過(guò)程
iPhone開(kāi)發(fā)進(jìn)階(3)定制UIViewController案例實(shí)現(xiàn)
iPhone開(kāi)發(fā)進(jìn)階(4)編程定制UIButton案例實(shí)現(xiàn)