出版時(shí)間:2012-10 出版社:人民郵電出版社 作者:[美] Gary Bennett,[美] Mitch Fisher,[美] Brad Lees 頁(yè)數(shù):239 譯者:王 雷
Tag標(biāo)簽:無(wú)
前言
引 言過(guò)去三年里,我們聽(tīng)過(guò)無(wú)數(shù)次下面的話。“我從來(lái)沒(méi)有編過(guò)程序,但是我有個(gè)很棒的想法可以做成iPhone/iPad應(yīng)用。”“我真的能學(xué)會(huì)編寫(xiě)iPhone或者iPad程序嗎?”我們的回答一直是:“你可以的,但是你必須有信心。”你只需要戰(zhàn)勝自我。致新手本書(shū)假設(shè)你從來(lái)沒(méi)編寫(xiě)過(guò)任何程序。它也適合從來(lái)沒(méi)有用面向?qū)ο缶幊蹋∣bject-Oriented Programming,OOP)語(yǔ)言編過(guò)程序的人。市面上Objective-C的教程很多,但是所有這些書(shū)都假設(shè)你有編程經(jīng)驗(yàn)并且理解OOP和計(jì)算機(jī)程序邏輯。我們想要寫(xiě)一本書(shū),即使讀者對(duì)程序設(shè)計(jì)、程序邏輯知之甚少或一無(wú)所知,讀完之后也可以用Objective-C編程。畢竟,Objective-C是iPhone、iPad以及Mac的原生語(yǔ)言。過(guò)去三年里,我們?cè)趚celMe.com培訓(xùn)過(guò)1000多名iPhone/iPad開(kāi)發(fā)者。很多學(xué)生開(kāi)發(fā)出一些很成功的iOS應(yīng)用,它們?cè)趇Tunes應(yīng)用商店中是各自類(lèi)別中的佼佼者。我們最初的兩門(mén)課程是“面向?qū)ο缶幊踢壿嬋腴T(mén)”(Introduction to Objective-oriented Programming and Logic)以及“面向iPhone/iPad開(kāi)發(fā)人員的Objective-C語(yǔ)言”(Objective-C for iPhone/iPad Developers),我們把這兩門(mén)課程中講授的東西寫(xiě)到了這本書(shū)里。致有經(jīng)驗(yàn)的開(kāi)發(fā)者很多開(kāi)發(fā)者已經(jīng)多年不做編程了,有些開(kāi)發(fā)者僅使用非面向?qū)ο缶幊陶Z(yǔ)言做過(guò)開(kāi)發(fā),這些人需要學(xué)習(xí)面向?qū)ο缶幊痰母拍詈瓦壿嫷谋尘爸R(shí),才能深入理解Objective-C。如果你是這類(lèi)人,那么本書(shū)很適合你。我們會(huì)帶你輕松了解OOP,以及它在iOS開(kāi)發(fā)中的應(yīng)用,助你成為成功的iOS開(kāi)發(fā)者。為什么要用Alice(一個(gè)創(chuàng)新性的3D編程環(huán)境)過(guò)去這些年,各個(gè)大學(xué)的計(jì)算機(jī)系都面臨這樣一些困擾:男生比例偏高;輟學(xué)率偏高;畢業(yè)所需時(shí)間偏長(zhǎng)。學(xué)習(xí)OOP語(yǔ)言(比如Java、C++或者Objective-C)最大的挑戰(zhàn)之一就是它們一開(kāi)始就讓人感覺(jué)很難學(xué)。在過(guò)去,學(xué)生們要同時(shí)學(xué)習(xí)下面的課題:面向?qū)ο蟮脑瓌t;復(fù)雜的集成開(kāi)發(fā)環(huán)境(IDE),比如Xcode、Eclipse或Visual Studio;編程語(yǔ)言的語(yǔ)法規(guī)則;編程邏輯和原理。為此,卡內(nèi)基梅隆大學(xué)獲得美國(guó)政府的撥款,研發(fā)了Alice。它是一個(gè)創(chuàng)新性的3D編程環(huán)境,讓初學(xué)開(kāi)發(fā)的人很容易就能創(chuàng)造出豐富的圖形程序。Alice是一個(gè)教學(xué)工具,讓學(xué)生在OOP環(huán)境中學(xué)習(xí)編程。這一軟件使用3D圖像和支持拖拽的界面,使初次編程的體驗(yàn)更具吸引力,而較少挫敗感。Alice讓學(xué)生集中學(xué)習(xí)OOP的原則,而不必同時(shí)再學(xué)復(fù)雜的IDE和Objetive-C的原理。學(xué)生可以把注意力集中在一個(gè)主題上,這樣才能在學(xué)習(xí)過(guò)程中產(chǎn)生真正的成就感。既然是拖拽式的編程,Alice就免去了學(xué)習(xí)IDE和語(yǔ)言語(yǔ)法的復(fù)雜性。你會(huì)發(fā)現(xiàn)編程實(shí)際上很有趣,而且還可以用Alice開(kāi)發(fā)出很酷很復(fù)雜的應(yīng)用。介紹過(guò)OOP的課題,讓讀者熟悉這些概念之后,我們會(huì)開(kāi)始講解Xcode,有了它你可以應(yīng)用剛學(xué)的OOP的知識(shí)編寫(xiě)Objective-C應(yīng)用程序。這樣一來(lái),你就能集中精力學(xué)習(xí)Objective-C的語(yǔ)法和語(yǔ)言,而不用再同時(shí)學(xué)OOP了。不使用Alice學(xué)習(xí)Objective-C一千多名xcelMe.com的學(xué)員曾閱讀過(guò)本書(shū)并成為成功的iOS開(kāi)發(fā)者。每次課程結(jié)束,我們都會(huì)詢(xún)問(wèn)學(xué)員前四章中講解Alice的章節(jié)是否有用。超過(guò)半數(shù)的學(xué)員認(rèn)為在前四章的開(kāi)頭用Alice引入本章的內(nèi)容對(duì)于他們的成功至關(guān)重要。但是,也有學(xué)生感覺(jué)他們不需要前四章開(kāi)頭的Alice示例。我們?cè)诰幣疟緯?shū)前四章的時(shí)候,在每章的第一部分用Alice引入OOP的課題,而其余部分用Objetive-C講述同一課題。因此,如果你對(duì)某一課題很熟悉的話,可以跳過(guò)Alice的段落。本書(shū)結(jié)構(gòu)你會(huì)注意到本書(shū)處處都會(huì)讓你體驗(yàn)成功。我們用Alice來(lái)介紹OOP及程序邏輯的概念,然后把它們引入Xcode和Objective-C。很多學(xué)生學(xué)東西喜歡看得見(jiàn)摸得著,這兩種方式我們都會(huì)采用。我們講述課題或者概念的時(shí)候,會(huì)提供圖例,然后帶你一步步地完成示例,以此來(lái)強(qiáng)化這些概念。我們經(jīng)常在不同章節(jié)里重復(fù)一些課題,這是為了幫助你加強(qiáng)理解學(xué)過(guò)的技能,并以新的方式使用它們。這種方法使得初學(xué)編程的人可以多次應(yīng)用學(xué)過(guò)的開(kāi)發(fā)技能,在學(xué)習(xí)的過(guò)程中體會(huì)到成就感。因此,如果你感覺(jué)沒(méi)有完全掌握一個(gè)課題,別擔(dān)心,繼續(xù)往下學(xué)!成功之道學(xué)習(xí)編程是與程序之間交互的過(guò)程。就如同學(xué)一種樂(lè)器一樣,你需要不斷練習(xí)。你必須完成本書(shū)所有的示例和習(xí)題。理解了概念并不意味著你知道如何應(yīng)用。閱讀本書(shū)你能了解很多,在完成本書(shū)習(xí)題的時(shí)候你也能體會(huì)到很多。但是只有當(dāng)你調(diào)試程序的時(shí)候,你才真正能學(xué)到東西?;〞r(shí)間走查自己的代碼,努力發(fā)現(xiàn)它為何不像你預(yù)想的那樣工作,這個(gè)學(xué)習(xí)過(guò)程是不可替代的。調(diào)試的缺點(diǎn)是,開(kāi)發(fā)新手可能覺(jué)得其過(guò)程非常令人沮喪。你甚至?xí)袕奈从羞^(guò)的沖動(dòng),想把電腦扔出窗外。你會(huì)質(zhì)疑自己為什么要學(xué)這個(gè),是不是自己還不夠聰明,無(wú)法解決這個(gè)問(wèn)題。編程讓你變得謙卑,即使資深的開(kāi)發(fā)人員也是如此。和音樂(lè)家一樣,你練習(xí)得越多,你的技術(shù)就越強(qiáng)。我們說(shuō)的練習(xí)就是編程。作為一個(gè)程序員,你可以做出很驚人的東西來(lái),你可以掌控世界。能在iTunes應(yīng)用商店看到自己的應(yīng)用是最讓人滿(mǎn)足的一項(xiàng)成就了。但是,你要為此付出代價(jià),代價(jià)就是為編碼和學(xué)習(xí)付出的時(shí)間。我們教過(guò)1000多個(gè)學(xué)生,把他們培養(yǎng)成了iOS開(kāi)發(fā)人員,我們總結(jié)出了一些確保學(xué)生成功的規(guī)律。下面就是我們的成功之道。要自信。只有你才會(huì)說(shuō)自己不行,千萬(wàn)別這么做。把書(shū)中所有的示例和習(xí)題都做一遍。編碼,編碼,不斷地編碼。編得越多,能力越強(qiáng)。對(duì)自己有耐心。如果你之前是個(gè)幸運(yùn)的優(yōu)等生,只需讀一下就能記住所有的東西,這對(duì)Objective-C編程可行不通。你必須花時(shí)間編碼。你可以靠讀這本書(shū)記住些東西,但是在調(diào)試代碼的時(shí)候才真正學(xué)到東西。使用本章末尾提到的免費(fèi)的xcelMe.com網(wǎng)絡(luò)教程和YouTube視頻。不要放棄!開(kāi)發(fā)技術(shù)棧我們會(huì)帶你理解iOS應(yīng)用的開(kāi)發(fā)全過(guò)程,以及你所需要的技術(shù)。但是,現(xiàn)在簡(jiǎn)單看看成品也很有幫助。圖1是一個(gè)用列表視圖呈現(xiàn)的iPhone應(yīng)用示例。圖1 iPhone/iPad技術(shù)棧需要的軟件、資料和設(shè)備Alice的一個(gè)優(yōu)越之處就是它在現(xiàn)今的三個(gè)主要的操作系統(tǒng)上都能用:WindowsMacLinuxAlice另一個(gè)優(yōu)越之處是它是免費(fèi)的。1. 操作系統(tǒng)和IDE盡管你可以在多種平臺(tái)上使用Alice,開(kāi)發(fā)人員開(kāi)發(fā)iOS應(yīng)用的集成開(kāi)發(fā)環(huán)境(IDE)是Xcode。你必須在一臺(tái)基于Intel芯片的Mac上使用Xcode和提交應(yīng)用。Xcode也是免費(fèi)的,在Mac應(yīng)用商店上找得到。2. 軟件開(kāi)發(fā)包你還需要注冊(cè)成為iOS開(kāi)發(fā)者。當(dāng)你決定上傳應(yīng)用到iTunes應(yīng)用商店的時(shí)候,必須支付每年99美元的費(fèi)用。3. 雙顯示器我們推薦開(kāi)發(fā)人員給電腦連上兩個(gè)顯示器。這樣你可以在一邊單步執(zhí)行代碼,在另一邊查看輸出窗口和iPad模擬器,樂(lè)何如之!這在Apple的機(jī)器上很容易配置。你只要使用正確的Mini DisplayPort適配器,把第二臺(tái)顯示器插在任何基于Intel的Mac的顯示端口上,就擁有了獨(dú)立工作的兩臺(tái)顯示器,見(jiàn)圖2。請(qǐng)注意雙顯示器不是必需的,如果沒(méi)有雙顯示器,你就要在一個(gè)屏幕上好好組織打開(kāi)的窗口了。圖2 雙顯示器4. 免費(fèi)的在線研討會(huì)、Q&A以及YouTube視頻幾乎每個(gè)周三晚上7:30(太平洋夏令時(shí)),我們都有在線研討會(huì),討論書(shū)中的一個(gè)課題,或者時(shí)下的一個(gè)技術(shù)熱點(diǎn)。這些在線研討會(huì)是免費(fèi)的。研討會(huì)結(jié)尾,我們會(huì)安排Q& A環(huán)節(jié)。你可以就研討會(huì)上討論的話題或者書(shū)中任何課題提問(wèn)。除此之外,我們所有的研討會(huì)都會(huì)錄制下來(lái)放在YouTube上,如圖3所示。圖3 免費(fèi)Objective-C研討會(huì)和YouTube視頻請(qǐng)訂閱該YouTube頻道,以便收到新錄像的上傳通知。5. 本書(shū)免費(fèi)論壇我們?yōu)楸緯?shū)開(kāi)發(fā)了一個(gè)在線論壇。在這里你可以就學(xué)習(xí)Objective-C過(guò)程中遇到的問(wèn)題提問(wèn),本書(shū)的作者會(huì)作答。在此你也能找到習(xí)題的答案,以及有助于學(xué)習(xí)的更多練習(xí)。這里也提供了習(xí)題詳解以及一些有用的鏈接。這些鏈接可以幫助你成長(zhǎng)為一個(gè)成功的iPhone/iPad開(kāi)發(fā)者,創(chuàng)造出一流的應(yīng)用程序,見(jiàn)圖4?,F(xiàn)在讓我們開(kāi)始吧!
內(nèi)容概要
蘋(píng)果移動(dòng)應(yīng)用開(kāi)發(fā)成為熱點(diǎn),越來(lái)越多的人投身其中,其中不乏從未涉及軟件行業(yè)的菜鳥(niǎo)級(jí)人士。他們也能學(xué)會(huì)編寫(xiě)iPhone或iPad程序嗎?也能做出App應(yīng)用嗎?答案是肯定的。本書(shū)就是針對(duì)這類(lèi)人編寫(xiě)的。
本書(shū)匯編自xcelMe.com網(wǎng)站培訓(xùn)資料,從面向?qū)ο缶幊毯统绦蜻壿嫷幕靖拍钊胧郑I(lǐng)讀者踏上熟練運(yùn)用Xcode和Objective-C的征程,手把手教讀者編寫(xiě)iPhone、iPad和Mac應(yīng)用程序。作者注重實(shí)踐,始終強(qiáng)調(diào)親自動(dòng)手的重要性,并在書(shū)中給出了大量示例代碼和圖示,教會(huì)讀者從編程的角度考慮問(wèn)題,使用Objective-C構(gòu)建編程邏輯,并將所有東西合成到實(shí)際應(yīng)用中。書(shū)中的方法對(duì)初學(xué)者很有幫助,真正做到讓讀者可以零基礎(chǔ)起步,迅速掌握iPhone/iPad開(kāi)發(fā)的要領(lǐng)。
xcelMe.com提供關(guān)于本書(shū)內(nèi)容的在線研討、Q&A論壇以及習(xí)題答案。如果你想在App
Store中一舉成名,本書(shū)就是你的起點(diǎn)。
作者簡(jiǎn)介
Gary Bennett
資深軟件開(kāi)發(fā)工程師,xcelMe.com總裁,曾在多家公司擔(dān)任CIO和總裁,并在2002年帶領(lǐng)VistaCare成功上市。xcelMe.com是一家提供在線iPhone/iPad編程課程的網(wǎng)站,已培訓(xùn)了數(shù)千名iPhone/iPad應(yīng)用程序開(kāi)發(fā)人員。iTunes
App
Store上有不少大賣(mài)的應(yīng)用程序都是xcelMe.com的學(xué)員開(kāi)發(fā)出來(lái)的。除本書(shū)外,Gary還與人合著了《精彩iPhone炫酷開(kāi)發(fā):七位一線高手的編程和設(shè)計(jì)范例》(人民郵電出版社出版)。
Mitch Fisher
資深軟件開(kāi)發(fā)工程師,20世紀(jì)80年代就投身于計(jì)算機(jī)領(lǐng)域,先后擔(dān)任過(guò)多家大中型企業(yè)的軟件工程師、軟件架構(gòu)師和軟件經(jīng)理。目前致力于開(kāi)發(fā)iOS應(yīng)用程序、創(chuàng)建Unix服務(wù)器端技術(shù)以及在xcelMe.com教授iOS開(kāi)發(fā)。
Brad Lees
在應(yīng)用程序開(kāi)發(fā)和服務(wù)器管理方面有超過(guò)15年的經(jīng)驗(yàn),尤其擅長(zhǎng)設(shè)計(jì)房地產(chǎn)開(kāi)發(fā)系統(tǒng)和金融機(jī)構(gòu)的軟件程序。Brad先后擔(dān)任過(guò)The Lyle
Anderson公司信息系統(tǒng)經(jīng)理、Smarsh產(chǎn)品研發(fā)經(jīng)理、iNation應(yīng)用程序開(kāi)發(fā)副總裁,以及亞利桑那州最大的建筑設(shè)計(jì)事務(wù)所Orcutt/Winslow
Partnership的信息技術(shù)經(jīng)理。
書(shū)籍目錄
目錄
第1章 成為優(yōu)秀的iOS或Mac 程序員
1.1 像開(kāi)發(fā)人員一樣思考
1.2 完成開(kāi)發(fā)周期
1.3 面向?qū)ο缶幊毯?jiǎn)介
1.4 操縱Alice界面
1.5 總結(jié)
1.6 習(xí)題
第2章 編程基礎(chǔ)
2.1 和Alice一起漫游仙境
2.1.1 導(dǎo)航菜單
2.1.2 世界窗口
2.1.3 Alice中的類(lèi)、對(duì)象和實(shí)例
2.1.4 對(duì)象樹(shù)
2.1.5 編輯區(qū)域
2.1.6 細(xì)節(jié)區(qū)域
2.1.7 事件區(qū)域
2.2 創(chuàng)建一個(gè)Alice應(yīng)用——登月
2.3 你的第一個(gè)Objective-C程序
2.4 總結(jié)
2.5 習(xí)題
第3章 關(guān)于數(shù)據(jù)
3.1 編程中用到的數(shù)字系統(tǒng)
3.1.1 比特
3.1.2 字節(jié)
3.1.3 十六進(jìn)制計(jì)數(shù)
3.1.4 Unicode
3.2 數(shù)據(jù)類(lèi)型
3.3 在Alice中使用變量和數(shù)據(jù)類(lèi)型
3.4 數(shù)據(jù)類(lèi)型與Objective-C
3.5 確定問(wèn)題所在
3.6 總結(jié)
3.7 習(xí)題
第4章 程序流的決策與計(jì)劃
4.1 布爾邏輯
4.1.1 真值表
4.1.2 比較運(yùn)算符
4.2 應(yīng)用設(shè)計(jì)
4.2.1 偽代碼
4.2.2 設(shè)計(jì)需求
4.2.3 流程圖
4.2.4 示例應(yīng)用的設(shè)計(jì)和流程圖
4.2.5 應(yīng)用的設(shè)計(jì)
4.2.6 使用循環(huán)來(lái)重復(fù)程序語(yǔ)句
4.3 示例應(yīng)用在Alice中的程序?qū)崿F(xiàn)
4.4 示例應(yīng)用在Objective-C中的程序?qū)崿F(xiàn)
4.4.1 嵌套的if語(yǔ)句和else-if語(yǔ)句
4.4.2 刪掉多余字符
4.4.3 通過(guò)重構(gòu)改善代碼
4.4.4 運(yùn)行應(yīng)用
4.5 和Alice道別
4.6 總結(jié)
4.7 習(xí)題
第5章 基于Objective-C的面向?qū)ο缶幊獭?
5.1 對(duì)象
5.2 什么是類(lèi)
5.3 類(lèi)的設(shè)計(jì)
5.3.1 屬性的設(shè)計(jì)
5.3.2 方法的設(shè)計(jì)
5.3.3 類(lèi)的實(shí)現(xiàn)
5.4 繼承
5.5 為什么使用OOP
5.5.1 它無(wú)處不在
5.5.2 消除冗余代碼
5.5.3 方便調(diào)試
5.5.4 方便替換
5.6 高階課題
5.6.1 接口
5.6.2 多態(tài)
5.7 總結(jié)
5.8 習(xí)題
第6章 學(xué)習(xí)Objective-C和Xcode
6.1 Objective-C簡(jiǎn)史
6.2 理解語(yǔ)言的符號(hào)
6.3 面向?qū)ο蟾拍睢?
6.4 用Xcode再寫(xiě)一個(gè)程序
6.5 總結(jié)
6.6 習(xí)題
第7章 Objective-C的類(lèi)、對(duì)象及方法
7.1 創(chuàng)建Objective-C類(lèi)
7.1.1 聲明接口和實(shí)例變量
7.1.2 發(fā)送消息(方法)
7.1.3 實(shí)現(xiàn)文件的使用
7.1.4 方法的編碼
7.2 新類(lèi)的使用
7.2.1 創(chuàng)建項(xiàng)目
7.2.2 添加對(duì)象
7.2.3 完成實(shí)現(xiàn)文件
7.2.4 創(chuàng)建用戶(hù)界面
7.2.5 連接代碼
7.2.6 運(yùn)行程序
7.2.7 充分發(fā)揮類(lèi)方法的作用
7.3 訪問(wèn)Xcode文檔
7.4 總結(jié)
7.5 習(xí)題
第8章 Objective-C編程基礎(chǔ)
8.1 集合類(lèi)
8.1.1 使用NSSet
8.1.2 使用NSArray
8.1.3 NSDictionary
8.1.4 確定集合元素的類(lèi)型
8.2 使用可變類(lèi)
8.2.1 NSMutableSet
8.2.2 NSMutableArray
8.2.3 NSMutableDictionary
8.3 創(chuàng)建BookStore應(yīng)用程序
8.4 引入實(shí)例變量
8.4.1 訪問(wèn)實(shí)例變量
8.4.2 使用獲取方法和設(shè)置方法
8.5 引入屬性
8.5.1 屬性的使用
8.5.2 理解慣例的重要性
8.6 完成MyBookstore程序
8.6.1 創(chuàng)建視圖
8.6.2 添加實(shí)例變量
8.6.3 添加描述
8.6.4 創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)據(jù)模型類(lèi)
8.6.5 更改MasterViewController
8.6.6 更改DetailViewController
8.7 總結(jié)
8.8 習(xí)題
第9章 比較數(shù)據(jù)
9.1 復(fù)習(xí)布爾邏輯
9.2 使用關(guān)系操作符
9.2.1 比較數(shù)值
9.2.2 創(chuàng)建示例Xcode應(yīng)用
9.3 使用布爾表達(dá)式
9.3.1 比較字符串
9.3.2 比較日期
9.3.3 比較的結(jié)合
9.4 使用switch語(yǔ)句
9.5 總結(jié)
9.6 習(xí)題
第10章 創(chuàng)建用戶(hù)界面
10.1 理解Interface Builder
10.2 模型?視圖?控制器
10.3 人機(jī)交互界面準(zhǔn)則(HIG)
10.4 用Interface Builder創(chuàng)建iPhone示例應(yīng)用
10.4.1 使用Interface Builder
10.4.2 Dock
10.4.3 庫(kù)
10.4.4 查看器窗格和選擇器工具條
10.4.5 創(chuàng)建視圖
10.4.6 使用插口
10.4.7 連接動(dòng)作和對(duì)象
10.4.8 實(shí)現(xiàn)文件
10.5 總結(jié)
10.6 習(xí)題
第11章 數(shù)據(jù)存儲(chǔ)
11.1 存儲(chǔ)注意事項(xiàng)
11.2 首選項(xiàng)
11.2.1 首選項(xiàng)的寫(xiě)操作
11.2.2 首選項(xiàng)的讀操作
11.3 數(shù)據(jù)庫(kù)
11.4 在數(shù)據(jù)庫(kù)中存儲(chǔ)信息
11.5 開(kāi)始使用Core Data
11.6 模型
11.6.1 受控對(duì)象上下文
11.6.2 設(shè)置界面
11.7 總結(jié)
11.8 習(xí)題
第12章 協(xié)議和委托
12.1 多繼承
12.2 理解協(xié)議
12.3 理解委托
12.4 下一步
12.5 總結(jié)
第13章 內(nèi)存、地址和指針
13.1 理解內(nèi)存
13.1.1 比特、字節(jié)和基數(shù)
13.1.2 十進(jìn)制轉(zhuǎn)換為二進(jìn)制
13.1.3 使用十六進(jìn)制的計(jì)數(shù)法
13.2 理解內(nèi)存地址的基礎(chǔ)
13.3 內(nèi)存的分配
13.4 解除分配內(nèi)存
13.5 在Objective-C中用ARC管理內(nèi)存
13.6 沒(méi)有ARC的Objective-C內(nèi)存管理
13.6.1 使用保留/釋放模型
13.6.2 處理隱含的保留消息和自動(dòng)釋放
13.6.3 發(fā)送dealloc消息
13.7 如果出了問(wèn)題
13.8 ARC注意事項(xiàng)
13.9 總結(jié)
13.10 習(xí)題
第14章 Xcode調(diào)試器
14.1 準(zhǔn)備調(diào)試
14.1.1 設(shè)置斷點(diǎn)
14.1.2 使用斷點(diǎn)導(dǎo)航器
14.1.3 調(diào)試基礎(chǔ)
14.1.4 使用調(diào)試器控件
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 對(duì)于首選項(xiàng)的寫(xiě)操作,你需要做的就是創(chuàng)建一個(gè)NSUserDefaults對(duì)象。就像下面這行代碼一樣: NSUserDefaults*prefs=(NSUserDefaults standardUserDefaults); 這行代碼實(shí)例化了對(duì)象的prefs,現(xiàn)在可以使用它來(lái)設(shè)置首選項(xiàng)的值。下一步,需要設(shè)置你想要存儲(chǔ)的值所對(duì)應(yīng)的首選項(xiàng)的鍵。本章我們會(huì)繼續(xù)使用前面的書(shū)店應(yīng)用示例來(lái)展示特定的操作。對(duì)一個(gè)書(shū)店來(lái)說(shuō),你可能要在首選項(xiàng)中存儲(chǔ)用戶(hù)名或者密碼。你也可能想要存儲(chǔ)默認(rèn)圖書(shū)分類(lèi)或者最近的搜索之類(lèi)的東西。首選項(xiàng)文件對(duì)于存儲(chǔ)這類(lèi)信息來(lái)說(shuō)很合適,因?yàn)檫@類(lèi)信息只在程序啟動(dòng)的時(shí)候有讀取的必要。 并且,在iPhone上,經(jīng)常有必要保存當(dāng)前狀態(tài)。如果用戶(hù)在使用應(yīng)用的時(shí)候接到一個(gè)電話,你希望在他完成通話之后,能讓你的應(yīng)用恢復(fù)到用戶(hù)通話之前所在的精確位置?,F(xiàn)在對(duì)于iOS 4和iOS 5這些已經(jīng)實(shí)現(xiàn)多任務(wù)功能的系統(tǒng)來(lái)說(shuō),這已經(jīng)不那么必要了,但是如果你的應(yīng)用能夠在每次啟動(dòng)時(shí)記得用戶(hù)上次使用它時(shí)正在做什么,你的用戶(hù)還是很樂(lè)意的。 一旦實(shí)例化某個(gè)對(duì)象之后,開(kāi)發(fā)者就可以調(diào)用setObjectforKey方法來(lái)對(duì)其進(jìn)行設(shè)置。如果你想要保存用戶(hù)名sherlock.holmes,就調(diào)用下面一行代碼: (prefs setObject:@“sherlock.holmes”forKey:@“username”); 你可以用setInteger、setDouble、setBool、setFloat以及setURL方法,而不用直接調(diào)用setObject,這取決于你要存儲(chǔ)在首選項(xiàng)文件中的信息類(lèi)型。假設(shè)你存儲(chǔ)的是用戶(hù)想要在列表中看到的圖書(shū)數(shù)量,下面就是使用setInteger來(lái)存儲(chǔ)首選項(xiàng)的例子: (prefs setInteger: 10 forKey:@”booksInList”); 過(guò)一段時(shí)間之后,你的應(yīng)用會(huì)自動(dòng)向首選項(xiàng)文件中做寫(xiě)操作。你也可以通過(guò)調(diào)用synchronize函數(shù)強(qiáng)制應(yīng)用保存首選項(xiàng),但是在大多數(shù)情況下沒(méi)有這個(gè)必要。下面這一行代碼就可以調(diào)用同步函數(shù): (prefs synchronize); 只用3行代碼,我們就可以創(chuàng)建一個(gè)首選項(xiàng)對(duì)象,設(shè)置兩個(gè)首選項(xiàng)的值,寫(xiě)首選項(xiàng)文件。
媒體關(guān)注與評(píng)論
一本初學(xué)者不容錯(cuò)過(guò)的好書(shū)!本書(shū)最大的優(yōu)點(diǎn)在于不需要安裝特殊軟件,大部分資源都是免費(fèi)的?!狾verstock.com評(píng)論似乎每個(gè)人都可以為蘋(píng)果的iPhone、iPad和Mac編寫(xiě)應(yīng)用程序,那到底如何入手呢?來(lái)吧,本書(shū)告訴你這一切!——巴諾書(shū)店讀者評(píng)論
編輯推薦
在線教授iPhone/iPad編程課程權(quán)威公司xcelMe.com總裁著作讓各類(lèi)程序員將自己現(xiàn)有的編程經(jīng)驗(yàn)應(yīng)用到Objective-C編程中來(lái)幫助沒(méi)有任何編程經(jīng)驗(yàn)的人開(kāi)發(fā)出應(yīng)用程序不懂編程也能投身移動(dòng)開(kāi)發(fā)從零起步學(xué)會(huì)iPhone/iPad應(yīng)用編程原書(shū)提供免費(fèi)在線學(xué)習(xí)資源
名人推薦
“一本初學(xué)者不容錯(cuò)過(guò)的好書(shū)!本書(shū)最大的優(yōu)點(diǎn)在于不需要安裝特殊軟件,大部分資源都是免費(fèi)的?!?--Overstock.com評(píng)論 “似乎每個(gè)人都可以為蘋(píng)果的iPhone、iPad和Mac編寫(xiě)應(yīng)用程序,那到底如何入手呢?來(lái)吧,本書(shū)告訴你這一切!” --巴諾書(shū)店讀者評(píng)論
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版