內容介紹
《Objective-C高級編程:iOS與OS X多執行緒和記憶體管理》在蘋果公司公開的原始碼基礎上,深入剖析了對套用於記憶體管理的ARC以及套用於多執行緒開發的Blocks和GCD。這些新技術看似簡單,實則非常容易成為技術開發的陷阱,開發者僅靠閱讀蘋果公司的文檔是不夠的。《Objective-C高級編程:iOS與OS X多執行緒和記憶體管理》適合有一定基礎的iOS開發者閱讀。
作者介紹
Kazuki Sakamoto日本資深軟體工程師,具有17年開發經驗。在StackOverflow上的威望值超過4500。著有《iOS 4編程基礎》、《iPhone&iPad cocos2d遊戲編程》等。Twitter:@splhack。
Tomohiko Furumoto
日本資深軟體工程師,擅長遊戲和移動套用開發。Twitter:@munakoiso。
作品目錄
第1章 自動引用計數11.1 什麼是自動引用計數2
1.2 記憶體管理/引用計數2
1.2.1 概要2
1.2.2 記憶體管理的思考方式5
1.2.3 alloc/retain/release/dealloc實現13
1.2.4 蘋果的實現17
1.2.5 autorelease20
1.2.6 autorelease實現24
1.2.7 蘋果的實現26
1.3 ARC規則29
1.3.1 概要29
1.3.2 記憶體管理的思考方式30
1.3.3 所有權修飾符30
1.3.4 規則50
1.3.5 屬性62
1.3.6 數組63
1.4 ARC的實現65
1.4.1 __strong修飾符65
1.4.2 __weak修飾符67
1.4.3 __autoreleasing修飾符75
1.4.4 引用計數76
第2章 Blocks79
2.1 Blocks概要80
2.1.1 什麼是Blocks80
2.2 Blocks模式83
2.2.1 Block語法83
2.2.2 Block類型變數85
2.2.3 截獲自動變數值88
2.2.4 __block說明符88
2.2.5 截獲的自動變數89
2.3 Blocks的實現91
2.3.1 Block的實質91
2.3.2 截獲自動變數值99
2.3.3 __block說明符102
2.3.4 Block存儲域108
2.3.5 __block變數存儲域117
2.3.6 截獲對象121
2.3.7 __block變數和對象126
2.3.8 Block循環引用128
2.3.9 copy/release134
第3章 Grand Central Dispatch137
3.1 Grand Central Dispatch(GCD)概要138
3.1.1 什麼是GCD138
3.1.2 多執行緒編程140
3.2 GCD的API144
3.2.1 Dispatch Queue144
3.2.2 dispatch_queue_create147
3.2.3 Main Dispatch Queue/Global Dispatch Queue150
3.2.4 dispatch_set_target_queue153
3.2.5 dispatch_after154
3.2.6 Dispatch Group155
3.2.7 dispatch_barrier_async157
3.2.8 dispatch_sync160
3.2.9 dispatch_apply161
3.2.10 dispatch_suspend / dispatch_resume163
3.2.11 Dispatch Semaphore164
3.2.12 dispatch_once166
3.2.13 Dispatch I/O167
3.3 GCD實現169
3.3.1 Dispatch Queue169
3.3.2 Dispatch Source171
附錄A ARC、Blocks、GCD使用範例176
附錄B 參考資料182