① iOS 開發的中英文入門推薦書籍都有哪些
我簡單介紹一下我那時學習參考的書籍。希望對你有幫助。
1.
Sams Teach Yourself iOS 5 Application Development in 24 Hours
Sams Teach Yourself iOS 6 Application Development in 24 Hours
我學習的時候只有ios5版本。這本書是我見過的最好的ios入門書籍,沒有之一。概念介紹清晰(初學者不該懂的概念絕對不廢話);實踐性強;節奏適當。不誇張地說,這本書看了2/3,我已經能做一個app了。(當然功能有相對的局限性,而且還有一些細節問題需要解決,但主要在設計美工環節。事實上,我的第一個app就是完全看完這本書後做的。)
這本書的缺點只有一個:對於OC語言的介紹不夠充分。如果之前沒有接觸過程序設計語言可能有點兒麻煩。但是對於有編程基礎的人來說不是問題。如果遇到語言問題,可以和《Learn Objective-C on the Mac》一起看。(見下介紹)
2.
Learn Objective-C On The Mac 2nd Edition
我忘記了我看的1st Edition還是2nd Edition了。不過OC變化不大,沒有影響。這是介紹OC語法的書。建議邊學ios開發邊看。我不建議一下子只扎進oc中,而棄ios sdk不顧。
3.
Beginning IOS 5 Development
Beginning iOS 6 Development : Exploring the iOS SDK
我當時看的是ios5版本。事實上,我一上來就看這本書,後來發現這本根本不適合入門!因為在ios5的時代,這本書介紹的方法依然是ios4的(比如不用storyboard)!我有很多朋友都企圖用這本書入門,但最後都失敗了。但是我依舊建議看完《Sam》後看看這本書。因為介紹了很多更細節的東西,而且也很有用(比如用代碼控制界面、控制界面的轉移、包括Core Data,Media相關的一些高級內容等)!在入門的基礎上看完這本書,對ios開的理解能上一個層次。
4.Pro iOS Table Views : for iPhone, iPad, and iPod touch
非常非常推薦的一本書。前面說的基礎書籍對tableView的介紹是不夠詳盡的。但是tableView在ios應用開發中是非常重要的一塊(至少我做的app都比較依賴tableView)。吃透這本書,tableView基本完全不成問題了。再次吐血推薦!(看完這本書,大多數應用類app都敢做了。)
5.
Beginning iPad Development for iPhone Developers
雖說是一本介紹ipad的書,但其實看完sam加上自己的實踐,製作universal的app不是什麼難事。ipad也沒那麼特殊。不過這是一本非常好的介紹
ios graphics capabilities的書!這本書會帶你完成一個簡單的繪圖app,之後你基本能夠熟練地使用ios的graphics相關功能了。(註:和Quatrz;Cocoa;OpenGL ES的Graphics不是一回事兒。)
6.
Programming iOS 5 : Fundamentals of iPhone, iPad, and iPod touch Development
Programming iOS 6
非常厚。比之前介紹的書都厚。而且都是干貨,所以讀起來也慢。我當時看ios5版本。這本書比較全面地介紹ios。建議徹底入門了,甚至已經做出幾個app了以後翻看。可以學到很多沒有注意過的細節;或者沒有用到過的features。雖是個大部頭,但是強烈推薦。
7.
Pro Multithreading and Memory Management for iOS and OS X : with ARC, Grand Central Dispatch, and Blocks這是關於ios多線程和內存管理的入門書籍。這部分內容比較深,其實普通開發者可以不完全理解這些機制了。尤其是ios5有了ARC之後。我基本翻完了這本書,但是對於其中的一些東西理解的不透徹(尤其是Multithread部分)。不完全推薦,但感興趣的同學可以看看。
8.Beginning iOS Game Development
這本書非常基礎。如果你已經入了門,讀這本書簡直輕而易舉。我花了一個下午的時間翻完這本書。主要是想學習一下ios動畫相關的內容。裡面只有很少的幾章涉及了相關內容,但是對於一些基本功能的實現已經夠了。如果想了解更多ios動畫的內容,還是需要到網上去找。我沒有找到很好的圖書資料。
這就是我完全看過的書。還有一些書覺得應該不錯,但是一直沒有時間看。而且等入了門,實踐的動力遠遠大於看書學習的動力,所以查文檔越來越多。希望能夠幫到你,也希望能得到大家指正。
最後,我的apps見個人主頁:http://liuyubobobo.com,都是很簡單的app,希望和大家交流。
編輯於 2014-03-16 31 條評論 感謝 分享 收藏 • 沒有幫助 • 舉報
臧其龍,弱者不扶,誰其懷德,強者逃罰,誰其畏威
丁炯、Fisland、mons 等人贊同
我寫過一篇專門推薦的iOS開發書單.
1.<iOS By Tutorial>系列.
Raywenderlich出的一些列圖書,內容從低到高都有,而且內容秉持了一貫的高質量風格,從5,6,7,8都推薦大家看.我是買了7和8的正版.真的非常不錯,不錯到我甚至想入手紙質版的.當然,價格是不太親民的了.(大概五六百左右).
2.<Swift By Tutorial>
3.<Core Data By tutorial>
上面的都是raywenderlich出品.有一個special offers.有錢的可以買一套.
我在raywenderlich上購買的
4.《iOS 6 Programming Pushing the Limits》和《iOS 7 Programming Pushing the Limits》系列.
高手向,講的內容比較貼近實際工程,而且涉及很多代碼優化和項目經驗等.非常贊.這個系列有引進的中文版,在京東上有賣.
5.<Swifter>
貓神<onecat>出的一個Swift的書,主要是面向對swift比較熟悉的人.類似tips的一些swift書寫經驗.
6.<iOS開發進階>
巧神出的書,多的不說,非常贊.京東有賣.
7.<iOS Core Animation>和<iOS Animation Cook book>
兩本介紹CoreAnimation的書,看完基本上一般交互動畫不在話下.
8.<CollectionView Complete Guide>
看完各種Custom layout布局隨意寫.怎麼自定義刪除添加cell動畫
,怎麼切換layout的動畫,如何寫3D效果的layout等等等.
9.<CFHipsterRef>
Mattt大神(AFNetWorking作者)寫的書,介紹Objective-C底層知識的,如果相對OBjective-C一些底層實現感興趣的話可以入手.
10.<Motion Design For iOS>
前不久買的一套,講交互動畫的,對動畫感興趣的可以入手.
11.<iOS Auto Layout Demystified>
詳細講解自動布局的,話說光寫自動布局能出一本書,我確實也沒想到.
12.<Functional Programming in Swift>
如何用swift進行函數式開發.
13.<圖解TCP/IP>
講解簡單易懂.
14.<啊哈!演算法>
講演算法的,感覺沒計算機基礎的看起來都不費力,而且內容也很豐富.
15.<Effective Objective-C 2.0>
這本不多說了吧,神書.進階必備.
16.<OpenGL ES應用開發實踐指南>
買這本純粹是因為跟自己工作有關系,我是做相機的嘛.對圖形圖像這塊感興趣的可以入手.講的一般.不過有基礎的翻翻就行了.
最後說一句,有能力的話大家還是買正版吧,按照程序員的收入說實話買幾本書根本不是問題.而且對自己的幫助也是立竿見影的.(話說有人願意花幾千買件衣服,不願意花50買本書.真是無法理解.)
② 你們ios更新完了以後有多線程模式嗎
iOS有三種多線程編程的技術,分別是:
(一)NSThread
(二)Cocoa NSOperation
(三)GCD(全稱:Grand Central Dispatch)
這三種編程方式從上到下,抽象度層次是從低到高的,抽象度越高的使用越簡單,也是Apple最推薦使用的。
三種方式的優缺點介紹:
1)NSThread:
優點:NSThread 比其他兩個輕量級
缺點:需要自己管理線程的生命周期,線程同步。線程同步對數據的加鎖會有一定的系統開銷
(一)NSThread的使用
NSThread 有兩種直接創建方式:
- (id)initWithTarget:(id)target selector:(SEL)selector object:(id)argument
+ (void)detachNewThreadSelector:(SEL)aSelector toTarget:(id)aTarget withObject:(id)anArgument
第一個是實例方法,第二個是類方法
參數的意義:
selector :線程執行的方法,這個selector只能有一個參數,而且不能有返回值。
target :selector消息發送的對象
argument:傳輸給target的唯一參數,也可以是nil
第一種方式會直接創建線程並且開始運行線程,第二種方式是先創建線程對象,然後再運行線程操作,在運行線程操作前可以設置線程的優先順序等線程信息
第二種方式繼承NSOperation
在.m文件中實現main方法,main方法編寫要執行的代碼即可。
如何控制線程池中的線程數?
隊列里可以加入很多個NSOperation, 可以把NSOperationQueue看作一個線程池,可往線程池中添加操作(NSOperation)到隊列中。線程池中的線程可看作消費者,從隊列中取走操作,並執行它。
③ 在IOS中為什麼使用多線程及多線程實現的三種方法
在iOS中使用多線程是為了讓我們的頁面不卡,提高用戶體驗。多線程實現的幾種方法如下。
NSThread。這是最輕量級的多線程的方法,使用起來最直觀的多線程編程方法。但是因為需要自己管理線程的生命周期,線程同步。經常使用NSThread進行調試,在實際項目中不推薦使用。
GCD(Grand Central Dispatch),GCD是基於C語言底層API實現的一套多線程並發機制,非常的靈活方便,在實際的開發中使用很廣泛。簡單來說CGD就是把 操作 放在 隊列 中去執行。
NSOperation & NSOperationQueue,雖然GCD的功能已經很強大了,但是它使用的API依然是C語言的。在某些時候,在面向對象的objective-c中使用起來非常的不方便和不安全。所以蘋果公司把GCD中的操作抽象成NSOperation對象,把隊列抽象成NSOperationQueue對象。
④ ios 中的多線程有幾種實現方式
在java5以前實現多線程有兩種方法(繼承Thread類和實現Runnable介面) 它們分別為: 使用new Thread()和new Thread(Runnable)形式 第一種直接調用thread的run方法,所以,往往使用Thread子類,即new SubThread()。 第二種調用 Runnable的run方法。 第一種: new Thread(){}.start();這表示調用Thread子類對象的run方法,new Thread(){}表示一個Thread的匿名子類的實例對象,子類加上run方法後的代碼如下: new Thread(){ public void run(){ } }.start(); 第二種: new Thread( new Runnable(){} ).start(); 這表示調用Thread對象接受的Runnable對象的run方法,new Runnable(){}表示一個Runnable的匿名子類的實例對象, runnable的子類加上run方法後的代碼如下: new Thread(new Runnable(){ public void run(){ } } ).start();
⑤ 在iOS開發為什麼使用多線程 多線程有哪些方法
多線程是一個比較輕量級的方法來實現單個應用程序內多個代碼執行路徑
在系統級別內,程序並排執行,程序分配到每個程序的執行時間是基於該程序的所需時間和其他程序的所需時間來決定的。
然而,在每個程序內部,存在一個或者多個執行線程,它同時或在一個幾乎同時發生的方式里執行不同的任務。
概要提示:
iPhone中的線程應用並不是無節制的,官方給出的資料顯示,iPhone OS下的主線程的堆棧大小是1M,第二個線程開始就是512KB,並且該值不能通過編譯器開關或線程API函數來更改,只有主線程有直接修改UI的能力
線程概述
有些程序是一條直線,起點到終點——如簡單的hello world,運行列印完,它的生命周期便結束了,像是曇花一現。
有些程序是一個圓,不斷循環直到將它切斷——如操作系統,一直運行直到你關機。
一個運行著的程序就是一個進程或者叫做一個任務,一個進程至少包含一個線程,線程就是程序的執行流。
Mac和IOS中的程序啟動,創建好一個進程的同時,一個線程便開始運作,這個線程叫做主線程。主線成在程序中的位置和其他線程不同,它是其他線程最終的父線程,且所有的界面的顯示操作即AppKit或UIKit的操作必須在主線程進行。
系統中每一個進程都有自己獨立的虛擬內存空間,而同一個進程中的多個線程則公用進程的內存空間。
每創建一個新的進成,都需要一些內存(如每個線程有自己的stack空間)和消耗一定的CPU時間。
當多個進成對同一個資源出現爭奪的時候需要注意線程安全問題
創建線程
創建一個新的線程就是給進程增加一個執行流,所以新建一個線程需要提供一個函數或者方法作為線程的進口。
iOS有三種多線程編程的技術,分別是:
(一)NSThread
(二)Cocoa NSOperation
(三)GCD(全稱:Grand Central Dispatch)
這三種編程方式從上到下,抽象度層次是從低到高的,抽象度越高的使用越簡單,也是Apple最推薦使用的。
NSThread:
優點:NSThread 比其他兩個輕量級
缺點:需要自己管理線程的生命周期,線程同步。線程同步對數據的加鎖會有一定的系統開銷
Cocoa NSOperation
優點:不需要關心線程管理,數據同步的事情,可以把精力放在自己需要執行的操作上。
Cocoa operation 相關的類是 NSOperation ,NSOperationQueue。
NSOperation是個抽象類,使用它必須用它的子類,可以實現它或者使用它定義好的兩個子類:NSInvocationOperation 和 NSBlockOperation。
創建NSOperation子類的對象,把對象添加到NSOperationQueue隊列里執行。
GCD
Grand Central Dispatch (GCD)是Apple開發的一個多核編程的解決方法。在iOS4.0開始之後才能使用。GCD是一個替代諸如NSThread, NSOperationQueue, NSInvocationOperation等技術的很高效和強大的技術。現在的iOS系統都升級到7了,所以不用擔心該技術不能使用。