第1章打開(kāi)iPhone開(kāi)發(fā)的大門(mén)_第1頁(yè)
第1章打開(kāi)iPhone開(kāi)發(fā)的大門(mén)_第2頁(yè)
第1章打開(kāi)iPhone開(kāi)發(fā)的大門(mén)_第3頁(yè)
第1章打開(kāi)iPhone開(kāi)發(fā)的大門(mén)_第4頁(yè)
第1章打開(kāi)iPhone開(kāi)發(fā)的大門(mén)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第1篇iPhone開(kāi)發(fā)入門(mén)STYLEREF"標(biāo)題1,實(shí)例名稱(chēng)"第1章打開(kāi)iPhone開(kāi)發(fā)的大門(mén)·PAGE10··PAGE9·第1章打開(kāi)iPhone開(kāi)發(fā)的大門(mén)歡迎各位加入iOS應(yīng)用程序開(kāi)發(fā)的大軍,本章主要介紹iPhone開(kāi)發(fā)最基礎(chǔ)的概念,以及一些常識(shí)性的內(nèi)容。主要涉及的知識(shí)點(diǎn)如下:iOS是什么。iPhone開(kāi)發(fā)時(shí)要用到的工具。iPhone開(kāi)發(fā)時(shí)要用到的框架。iPhone開(kāi)發(fā)軟件所用的語(yǔ)言。1.1了解iOS應(yīng)用程序開(kāi)發(fā)的基本概念圖1-1蘋(píng)果三英圖蘋(píng)果公司于2007年推出了一款手機(jī)叫iPhone,一經(jīng)推出,風(fēng)靡全球。很多地區(qū)售罄不說(shuō),更有甚者,居然有黃牛炒作,不能不說(shuō)已經(jīng)接近瘋狂的狀態(tài)。經(jīng)過(guò)這些年的發(fā)展,iPhone、iPodtouch和iPad都成為家喻戶(hù)曉的電子產(chǎn)品,其外形如圖1-1所示。圖1-1蘋(píng)果三英圖最近有個(gè)有趣的統(tǒng)計(jì):幼兒園中會(huì)玩iPad的小朋友比會(huì)系鞋帶的小朋友還多!iOS應(yīng)用程序是依托這3種電子產(chǎn)品運(yùn)行的軟件,熟悉蘋(píng)果的讀者肯定知道蘋(píng)果的應(yīng)用商店AppStore,那是一個(gè)專(zhuān)門(mén)出售各種軟件的平臺(tái),筆者的任務(wù)就是教會(huì)讀者編寫(xiě)這類(lèi)軟件。1.1.1什么是iOS圖1-2iOS技術(shù)層級(jí)圖iOS包括了當(dāng)某個(gè)應(yīng)用程序在iPhone、iPodtouch或iPad上運(yùn)行時(shí)所用到的操作系統(tǒng)和技術(shù)支撐。雖然iOS繼承了MacOSX(蘋(píng)果操作系統(tǒng)10)中的許多技術(shù),但它畢竟是專(zhuān)門(mén)針對(duì)移動(dòng)環(huán)境而設(shè)計(jì)的,所以還擁有許多特有的技術(shù)。圖1-2iOS技術(shù)層級(jí)圖如果讀者與筆者一樣,曾經(jīng)做過(guò)MacOSX上的應(yīng)用開(kāi)發(fā),便會(huì)感覺(jué)iPhone開(kāi)發(fā)得心應(yīng)手,而且能很快找到這兩者之間的共同點(diǎn)。當(dāng)然差異也很明顯,如iOS特有的多點(diǎn)觸摸等。講到iOS的技術(shù),就不得不提到iOS技術(shù)層級(jí),如圖1-2所示。從圖1-2可以看出iOS技術(shù)層分成如下4部分。(1)CoreOS和CoreServices兩個(gè)層主要是包含一些底層的框架(框架有點(diǎn)像庫(kù),就是一些功能類(lèi)的集合)。例如訪問(wèn)文件、低級(jí)數(shù)據(jù)類(lèi)型、網(wǎng)絡(luò)套接字等,這些都是用C語(yǔ)言實(shí)現(xiàn)的。一般來(lái)說(shuō),讀者不必對(duì)其進(jìn)行過(guò)分研究,因?yàn)榻^大多數(shù)情況下都不會(huì)與之打交道。因?yàn)樘O(píng)果將這些功能都做了更高級(jí)的封裝,所以真正使用起來(lái)非常方便。(2)往上走一層,看到Media層。這個(gè)層比較高級(jí),它的某些部分是基于C語(yǔ)言的框架,比如OpenGLES、核心視頻等;某些部分是基于Objective-C(蘋(píng)果開(kāi)發(fā)所使用的程序語(yǔ)言)的框架,比如本書(shū)后面將會(huì)有一章重點(diǎn)講解核心動(dòng)畫(huà),它就是一個(gè)高級(jí)動(dòng)畫(huà)引擎。像圖片的繪制、音頻視頻文件的處理等,都是這個(gè)層的任務(wù)。(3)最上面的CocoaTouch層的大部分技術(shù)都是用Objective-C語(yǔ)言實(shí)現(xiàn)的。這個(gè)層提供的框架都是編程時(shí)最常用的基本類(lèi),隨著接下來(lái)的學(xué)習(xí)的不斷深入,讀者會(huì)逐漸熟悉掌握這些類(lèi)的使用方法。該層包含的Foundationframework(基礎(chǔ)框架,下一節(jié)會(huì)詳細(xì)講解),提供最常用的數(shù)據(jù)結(jié)構(gòu)、網(wǎng)絡(luò)操作、文件管理等功能,與UIKitframework(界面工具包框架)并稱(chēng)為iOS開(kāi)發(fā)的靈魂框架。當(dāng)然,還有其他一些框架,如照片工具、硬件特征等,也是這個(gè)層所包含的。1.1.2什么是iOS的SDKiOS的SDK(軟件開(kāi)發(fā)工具包)包括代碼、信息,還有開(kāi)發(fā)、測(cè)試、運(yùn)行時(shí)所需要的工具。Xcode工具是蘋(píng)果公司專(zhuān)門(mén)為開(kāi)發(fā)者提供的代碼編譯環(huán)境,還配備應(yīng)用程序測(cè)試所需要的模擬器,這些知識(shí)點(diǎn)都會(huì)在后面的篇幅中詳細(xì)介紹,在此僅拋磚引玉。說(shuō)明:本書(shū)所有的案例都要求在正版操作系統(tǒng)Mac10.6以上、iOSSDK4.2才能正常運(yùn)行。當(dāng)讀者創(chuàng)建一個(gè)工程時(shí),工程一旦被編譯,SDK會(huì)幫助讀者使其能運(yùn)行。也就是說(shuō)其本身幫助寫(xiě)了一些默認(rèn)代碼,例如,有VisualC++編程經(jīng)驗(yàn)的讀者肯定知道,創(chuàng)建一個(gè)基于對(duì)話(huà)框的工程,單擊“運(yùn)行”按鈕就會(huì)彈出一個(gè)帶OK按鈕和Cancel按鈕的對(duì)話(huà)框,這些功能都是類(lèi)似的。程序運(yùn)行時(shí)會(huì)自動(dòng)全屏展示,與其他編程不同的是,這個(gè)應(yīng)用程序是單窗口的。也就是說(shuō),讀者在iOS上編寫(xiě)的程序都是單窗口的。當(dāng)然,肯定會(huì)有一些特殊的形式來(lái)表現(xiàn)多窗口,這些都會(huì)是本書(shū)將要教授的內(nèi)容。1.1.3什么是Objective-C語(yǔ)言前面提到過(guò)Objective-C語(yǔ)言,它是一門(mén)在C語(yǔ)言基礎(chǔ)上發(fā)展起來(lái)的、面向?qū)ο蟮母呒?jí)語(yǔ)言。讀者應(yīng)該已對(duì)C語(yǔ)言有所了解了,C語(yǔ)言是面向過(guò)程語(yǔ)言,這是它與Objective-C語(yǔ)言的最大區(qū)別。關(guān)于Objective-C語(yǔ)言的相關(guān)語(yǔ)法將會(huì)在下一章介紹。1.2介紹iOS開(kāi)發(fā)的基本框架上一節(jié)提到CocoaTouch層及其包含的兩個(gè)靈魂框架,如圖1-3所示。本節(jié)的主要內(nèi)容就是介紹這兩個(gè)框架的作用,以及這兩個(gè)框架所包含的類(lèi)集合。圖1-3重要框架圖1.2.1UIKit框架圖1-3重要框架圖UIKit框架主要與用戶(hù)界面相關(guān),提供所需要的構(gòu)建和管理應(yīng)用程序界面的類(lèi),這些類(lèi)包括應(yīng)用程序?qū)ο?、事件處理、繪制模式、窗口、視圖,以及屏幕控制器等。UIKit框架涉及的范圍十分廣泛,讀者以后見(jiàn)到的以UI開(kāi)頭的類(lèi)都屬于這個(gè)框架。筆者將這些類(lèi)的繼承關(guān)系做了一個(gè)匯總,希望讀者能有一個(gè)更加深刻的印象,如圖1-4所示。熟悉各個(gè)類(lèi)的繼承關(guān)系對(duì)以后編寫(xiě)自定義視圖及特定方法有很大的幫助,還可以幫助讀者建立起完整的視圖框架,希望讀者好好體會(huì)。圖1-4UIKit類(lèi)繼承關(guān)系圖1.2.2Foundation框架Foundation框架定義了一個(gè)Objective-C類(lèi)的基本層,并定義了原始的類(lèi)對(duì)象,該對(duì)象的功能并沒(méi)有被Objective-C語(yǔ)言覆蓋。Foundationframework的設(shè)計(jì)目標(biāo)有以下幾點(diǎn)。提供一個(gè)小的單元類(lèi)集合。通過(guò)說(shuō)明與實(shí)物一致性來(lái)降低開(kāi)發(fā)者的難度。支持統(tǒng)一字符編碼和對(duì)象持有與對(duì)象分配。提供一個(gè)操作系統(tǒng)獨(dú)立的層來(lái)提高便攜。該框架包括了基類(lèi)NSObject,以及NSArray、NSString等最常用的數(shù)據(jù)結(jié)構(gòu)類(lèi),如圖1-5所示。圖1-5基本框架類(lèi)圖圖1-5展示的只是部分類(lèi)的繼承關(guān)系圖,這些類(lèi)都是最常用的基本類(lèi)。在接下來(lái)的章節(jié)中,會(huì)選取其中的一部分進(jìn)行講解。本節(jié)介紹的兩個(gè)框架是最常用的,建立工程后,系統(tǒng)會(huì)自動(dòng)添加這兩個(gè)框架進(jìn)入工程,如果還需要其他框架,也可以在工程中手動(dòng)添加。1.3認(rèn)識(shí)軟件開(kāi)發(fā)工具本節(jié)將簡(jiǎn)單介紹在軟件編寫(xiě)過(guò)程中所需要的3個(gè)重要工具:Xcode、InterfaceBuild和Instruments。這3個(gè)工具都是由蘋(píng)果公司研發(fā)的,都屬于蘋(píng)果電腦自帶軟件,讀者可以在App文件夾中找到并使用它們。注意:在最新的Xcode版本中已經(jīng)將InterfaceBuild工具內(nèi)嵌,也就是說(shuō)這兩個(gè)工具合并成一個(gè)工具了,但是筆者在撰寫(xiě)此書(shū)時(shí),該版本還不是特別穩(wěn)定,所以,本書(shū)描述的還是未合并之前的版本。個(gè)人覺(jué)得這并不影響讀者自行學(xué)習(xí)最新版本的Xcode工具。1.3.1軟件編譯器:XcodeXcode是蘋(píng)果專(zhuān)門(mén)為開(kāi)發(fā)者提供的一款集成開(kāi)發(fā)環(huán)境,它集工程管理、代碼編寫(xiě)、代碼編譯、代碼調(diào)試、代碼版本管理等功能于一身。作為開(kāi)發(fā)者,應(yīng)該認(rèn)真關(guān)注它,因?yàn)閺墓こ涛募膭?chuàng)建,到中途的管理,再到后期的測(cè)試、最后的發(fā)布,每一個(gè)環(huán)節(jié)都離不開(kāi)它??梢哉f(shuō),不會(huì)正確使用Xcode的程序員,不是合格的iOS程序員!用Xcode創(chuàng)建工程以后,它就開(kāi)始幫助管理這個(gè)項(xiàng)目,包括管理源文件、編譯信息、工程配置等。Xcode主窗口如圖1-6所示。圖1-6Xcode主窗口圖這個(gè)窗口乍一看相當(dāng)復(fù)雜,沒(méi)關(guān)系,本節(jié)僅僅給讀者一個(gè)籠統(tǒng)的概念,讓讀者大體上知道Xcode是這樣一個(gè)東東,至于具體的功能如何使用,在接下來(lái)的章節(jié)會(huì)有詳細(xì)的介紹。如同圖1-6所示,最上面的是工具欄,提供很多操作按鈕,如編譯按鈕、運(yùn)行按鈕等。最下面的是狀態(tài)欄,它會(huì)顯示當(dāng)前的狀態(tài),如正在編譯、正在裝載等。中間左邊的文件列表視圖,羅列了整個(gè)工程的文件,那么具體有些什么文件呢?別急,具體講到Xcode使用時(shí),一定不會(huì)漏掉。中間右邊是細(xì)節(jié)視圖,當(dāng)選中文件列表中某個(gè)文件時(shí)細(xì)節(jié)列表就會(huì)顯示其細(xì)節(jié)信息。Xcode是一個(gè)高級(jí)文本編輯器,它不但可以編輯代碼,還可以做如下這些事情。對(duì)不同的內(nèi)容標(biāo)記不同的顏色以示區(qū)分。對(duì)暫時(shí)不要看到的代碼進(jìn)行打包隱藏。對(duì)錯(cuò)誤警告給出相應(yīng)解釋?zhuān)员愠绦騿T方便對(duì)其進(jìn)行修改。程序員也可以根據(jù)不同的需求定制編譯環(huán)境。搜索功能也十分強(qiáng)大,對(duì)于查找關(guān)鍵字有極大的幫助。注意:很多程序員不重視警告,覺(jué)得警告都是一些無(wú)關(guān)緊要的東西,但在iOS編程中,一定要改掉這個(gè)壞習(xí)慣,因?yàn)楹芏鄷r(shí)候一個(gè)警告可導(dǎo)致程序崩潰。筆者曾吃過(guò)大虧,有血的教訓(xùn)。所以提醒讀者,一旦Xcode報(bào)出警告,一定要查看并及時(shí)處理。當(dāng)程序員用Xcode編譯程序時(shí),會(huì)要求選擇是裝載真機(jī)設(shè)備還是模擬器,模擬器本身是蘋(píng)果電腦上的應(yīng)用程序,它具有真機(jī)設(shè)備的模仿功能,與Xcode的關(guān)系如圖1-7所示。圖1-7編譯對(duì)象關(guān)系圖一般的做法肯定是先上模擬器,在模擬器上運(yùn)行通過(guò)測(cè)試,再上真機(jī)設(shè)備。那么模擬器與真機(jī)設(shè)備有什么區(qū)別?具體的做法又是怎樣的?別急,這些都會(huì)在后面的篇幅具體介紹,讀者先有這個(gè)意識(shí)就行。1.3.2軟件美化器:InterfaceBuildInterfaceBuild工具主要用于用戶(hù)交互界面設(shè)計(jì),其外觀如圖1-8所示。使用InterfaceBuild工具將整個(gè)窗口資源文件聚集在一起,用拖曳方法將空間列表中的控件加到界面上??丶斜碇械目丶ò粹o、文本框、選擇器、普通視圖、圖片展示視圖等。加到界面上以后,還可以根據(jù)需要調(diào)整其位置,在巡視窗口中改變其屬性,并用拖曳連線(xiàn)的方法將控件與程序中的代碼結(jié)合在一起。也許,目前這么說(shuō)會(huì)使很多人不明白,什么叫拖曳連線(xiàn)的方法?在VisualC++中雙擊一個(gè)資源中的按鈕,會(huì)自動(dòng)跳到代碼中,并會(huì)自動(dòng)添加該代碼方法,似乎該按鈕就和這個(gè)方法結(jié)合了,對(duì)吧?這里不是用雙擊的方法,而是用拖曳的方法實(shí)現(xiàn)控件與代碼結(jié)合,簡(jiǎn)單吧?實(shí)際上都是一個(gè)意思,只是工具不同采取的手段不同而已。那么具體怎樣拖曳呢?這就是后面章節(jié)會(huì)講解的內(nèi)容。圖1-8InterfaceBuild外觀圖InterfaceBuild工具實(shí)際上是一個(gè)編輯器,它所編輯的文件叫.nib文件,就像Word編輯的文件叫.docx文件一樣。.nib文件實(shí)際上是一個(gè)資源文件,在程序運(yùn)行時(shí),系統(tǒng)需要相應(yīng)的.nib文件才能把界面構(gòu)造出來(lái),這應(yīng)該不難理解吧?InterfaceBuild創(chuàng)建的.nib文件包含應(yīng)用程序運(yùn)行時(shí)所需要的重建信息,包括與代碼中對(duì)象的對(duì)應(yīng)信息??傊?,InterfaceBuild工具可以讓編程更加簡(jiǎn)單,因?yàn)樗吘故莻€(gè)可視化的編輯器,基本上是個(gè)所見(jiàn)即所得的工具。1.3.3測(cè)試好幫手:Instruments為了確保應(yīng)用程序擁有良好的用戶(hù)體驗(yàn),蘋(píng)果為開(kāi)發(fā)人員提供了這個(gè)Instruments工具,它會(huì)幫助開(kāi)發(fā)人員使自己的軟件在用戶(hù)面前表現(xiàn)得更好。無(wú)論是在真機(jī)設(shè)備還是模擬器上運(yùn)行程序,都可以用Instruments工具進(jìn)行跟蹤。隨著運(yùn)行時(shí)間的推移,該工具會(huì)將各種運(yùn)行時(shí)數(shù)據(jù)進(jìn)行挖掘,如內(nèi)存消耗、硬盤(pán)狀態(tài)、網(wǎng)絡(luò)狀態(tài)、圖像表現(xiàn)力等,開(kāi)發(fā)人員可以根據(jù)這些數(shù)據(jù)對(duì)程序進(jìn)行修改。Instruments工具外觀如圖1-9所示。圖1-9Instruments工具外觀圖Instruments工具界面上顯示的信息比較多,其功能十分強(qiáng)大。當(dāng)開(kāi)發(fā)人員需要查詢(xún)更深層次的細(xì)節(jié)時(shí),只需要在信息列表里一層一層打開(kāi)。本書(shū)主要講解如何用Instruments工具幫助查找內(nèi)存泄漏的問(wèn)題,具體內(nèi)容詳見(jiàn)內(nèi)存管理相關(guān)章節(jié)。1.4小結(jié)本章主要為讀者簡(jiǎn)單介紹了iOS的一些基本概念,以及核心的框架、編程的主要工具等??傮w來(lái)說(shuō)內(nèi)容非常簡(jiǎn)單,為的是讓讀者能有一個(gè)美好的開(kāi)局。好的開(kāi)始會(huì)是成功的一半,接下來(lái)就會(huì)進(jìn)入基礎(chǔ)部分的學(xué)習(xí),首先從Objective-C語(yǔ)言的基本語(yǔ)法開(kāi)始,再到建立工程,然后是簡(jiǎn)單控件,最后是內(nèi)存管理。等基礎(chǔ)打牢以后,再進(jìn)入進(jìn)階階段的學(xué)習(xí),主要是多視圖的運(yùn)用、列表等高級(jí)控件的使用,再到事件消息、圖像繪制、動(dòng)畫(huà)效果。最后是iOS一些特

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論