在蘋果公司公開的原始程式碼基礎上,深入剖析了對應用於記憶體管理的ARC以及應用于多執行緒開發的Blocks和GCD。這些新技術看似簡單,實則非常容易成為技術開發的陷阱,開發者僅靠閱讀蘋果公司的文檔是不夠的。
《圖靈程式設計叢書·Objective-C高級程式設計:iOS與OSX多執行緒和記憶體管理》適合有一定基礎的iOS開發者閱讀。
作者介紹
KazukiSakamoto,日本資深軟體工程師,具有17年開發經驗。在StackOverflow上的威望值超過4500。著有《iOS4編程基礎》、《iPhone&iPadcocos2d遊戲編程》等。Tomohiko
Furumoto,日本資深軟體工程師,擅長遊戲和移動應用開發。黎華具有多年對日軟體開發和項目管理經驗,現就職于日本某知名軟體公司。曾參與富士通、東芝、日立等大型企業軟體項目的開發,熱衷於技術交流與資源共用。
目錄
第1章 自動引用計數 1
1.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 autorelease 20
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章 Blocks 79
2.1 Blocks概要 80
2.1.1 什麼是Blocks 80
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/release 134
第3章 GrandCentralDispatch 137
3.1 GrandCentralDispatch(GCD)概要 138
3.1.1 什麼是GCD 138
3.1.2 多執行緒程式設計 140
3.2 GCD的API 144
3.2.1 DispatchQueue 144
3.2.2 dispatch_queue_create 147
3.2.3 MainDispatchQueue/GlobalDispatchQueue 150
3.2.4 dispatch_set_target_queue 153
3.2.5 dispatch_after 154
3.2.6 DispatchGroup 155
3.2.7 dispatch_barrier_async 157
3.2.8 dispatch_sync 160
3.2.9 dispatch_apply 161
3.2.10 dispatch_suspend/dispatch_resume 163
3.2.11 DispatchSemaphore 164
3.2.12 dispatch_once 166
3.2.13 DispatchI/O 167
3.3 GCD實現 169
3.3.1 DispatchQueue 169
3.3.2 DispatchSource 171
附錄A ARC、Blocks、GCD使用範例 176
附錄B 參考資料 182
1.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 autorelease 20
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章 Blocks 79
2.1 Blocks概要 80
2.1.1 什麼是Blocks 80
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/release 134
第3章 GrandCentralDispatch 137
3.1 GrandCentralDispatch(GCD)概要 138
3.1.1 什麼是GCD 138
3.1.2 多執行緒程式設計 140
3.2 GCD的API 144
3.2.1 DispatchQueue 144
3.2.2 dispatch_queue_create 147
3.2.3 MainDispatchQueue/GlobalDispatchQueue 150
3.2.4 dispatch_set_target_queue 153
3.2.5 dispatch_after 154
3.2.6 DispatchGroup 155
3.2.7 dispatch_barrier_async 157
3.2.8 dispatch_sync 160
3.2.9 dispatch_apply 161
3.2.10 dispatch_suspend/dispatch_resume 163
3.2.11 DispatchSemaphore 164
3.2.12 dispatch_once 166
3.2.13 DispatchI/O 167
3.3 GCD實現 169
3.3.1 DispatchQueue 169
3.3.2 DispatchSource 171
附錄A ARC、Blocks、GCD使用範例 176
附錄B 參考資料 182
網路書店
類別
折扣
價格
-
新書87折$256