子曰:“溫故而知新,可以為師矣。”
去年10月份就買了這本書,一直等到這兩天才看完,不得不鄙視一下自己的執行力。為了學習iOS應用的開發,我在買這本書之前買過一本國人寫的《UIKit 詳解》,那本書主要是列舉了一下UIKit庫中常用的一些類的API和用法,當字典查還勉強過得去,但還遠遠算不上一本合格的iOS開發教程。后來覺得自己水平還需要再提高提高,于是就上豆瓣找到了這本評分高達9.2分的《iOS編程(第4版)》。
總的來講,這本書以動手實踐為核心思想,通過幾個實例項目將不同的理論知識串聯起來講解,作者提出了“邊做邊學,概念與代碼并重”的教學理念,所以對于讀者來說,動手才是學習的開始,看得見的成果也會激發學習者的興趣。
這本書設計的知識面廣,涵蓋了iOS開發的方方面面,包括Objective-C基礎語法知識,AppKit庫,常見的Cocoa設計模式,XCode技巧,Instruments等,對于iOS開發初學者來說已經足夠了,但是要想更加深入的了解各個知識模塊,就還得靠自己從其他途徑去挖掘了。平心而論,這本書配得上9.2分。
前言
1.優秀的iOS程序員的三要素:
- 熟練掌握Objective-C語言(推薦閱讀《Objective-C編程》、《Effective Objective-C 2.0》、《Objective-C高級編程 : iOS與OS X多線程和內存管理》)
- 熟練掌握 Cocoa 的常用技術:包括內存管理、委托機制(delegation)、固化機制(archiving),以及如何正確使用視圖控制器(view controller)
- 熟練掌握系統框架(framework):能夠自己通過閱讀并理解Apple的參考文檔來學習iOS SDK中的一些類和方法。
iOS開發究竟要學些什么呢,這里借用一張iOS學習路線圖(感謝原作者,不過很抱歉忘了出處了):
2.作者提出的一些教學理念很值得我們學習:
- 跟其他任何領域的學習一樣,有些知識是學習iOS編程必須要知道的,而且要非常了解。
- 學習能立即派上用處的知識,效果最佳。
- 理論與實踐并重時,效果最佳。
- 實際操作很重要,建議先輸入代碼,再理解含義,“找出錯誤并修正代碼”是學習編程的好辦法,學習者通過調試可以更加徹底地理解代碼。
- 學習新東西要有耐心,要有“敗不餒”的精神,“書讀百遍,其義自現”。
- 學習時最好制定一個合理的目標,每天在某一固定時間段里找一個安靜的地方集中精力學習,最好與外界切斷聯系,如微信等。
- 保證足夠的睡眠。
- 找個好“老師”,如果可以的話。
其實學習編程和學習寫作的訣竅是一樣的,總結起來就是“三多”——多寫(親自動手練習才能有所體會),多讀(看看別人是怎么寫的),多想(學而不思則罔)。
第一章 第一個簡單的iOS應用
這一章主要介紹了
要點:
- 項目導航面板中的組只用來整理文件,與文件系統無關。也就是說圖01中我們所看到的黃色的文件夾,不一定對應finder中的文件目錄。另外需要注意的是,在添加新文件時,我們一般選擇create groups,而不是Create folder references,如圖02所示。
擴展閱讀:
-
添加文件到工程中時的選項:
http://blog.csdn.net/yqmfly/article/details/45718157 -
項目工程中的folder references和groups:
http://www.lxweimin.com/p/488c56b4feb6 -
Explanation of Xcode settings for folders added to project:
http://stackoverflow.com/questions/8851144/explanation-of-xcode-settings-for-folders-added-to-project
2.在新建文件時確保選中了Target中的勾選框,選中后,XCode在構建項目時才會一起編譯新加入的文件,如圖03所示。
擴展閱讀:
-
官方文檔Xcode Target:
https://developer.apple.com/library/prerelease/ios/featuredarticles/XcodeConcepts/Concept-Targets.html#//apple_ref/doc/uid/TP40009328-CH4-SW1 -
Xcode中的 workspace, project, target, scheme:
http://www.lxweimin.com/p/1308a199f168 -
XCode: Target Settings和Project Settings的區別:
http://blog.csdn.net/a351945755/article/details/8079276 -
XCode工程中 Project 和 Targets區別:
http://blog.csdn.net/zhaozy55555/article/details/8557175 -
ios開發時,在Xcode中添加多個targets進行版本控制:
http://blog.csdn.net/ysysbaobei/article/details/10951991 -
猿題庫iOS客戶端的技術細節(一):使用多target來構建大量相似App:
http://blog.devtang.com/2013/10/17/the-tech-detail-of-ape-client-1/ -
Xcode基本介紹:
http://blog.csdn.net/phunxm/article/details/17044337
3.MVC(Model-View-Controller)設計模式是iOS開發中頻繁使用的一種設計模式。其含義是,應用創建的任何一個對象,其類型必定是模型對象、視圖對象或控制器對象三種類型中的一種。
- 視圖對象(View):用來構建用戶界面,展示內容。
- 模型對象(Model):負責存儲數據,與用戶界面無關。
- 控制器對象(Controller):扮演“管家”角色,它用于控制視圖對象(View)為用戶呈現的內容,以及負責確保視圖對象(View)和模型對象(Model)的數據一致。
>模型對象(Model)和視圖對象(View)沒有直接產生聯系,而是由控制器對象(Controller)負責彼此間的消息發送和數據傳遞。
擴展閱讀:
-
官方文檔Model-View-Controller:
https://developer.apple.com/library/ios/documentation/General/Conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html