Objective-C 高级编程:iOS与OS X多线程和内存管理

更多详情


内容简介: 《Objective-C 高级编程:iOS与OS X多线程和内存管理》在苹果公司公开的源代码基础上,深入剖析了对应用于内存管理的ARC以及应用于多线程开发的Blocks和GCD。这些新技术看似简单,实则非常容易成为技术开发的陷阱,开发者仅靠阅读苹果公司的文档是不够的。
《Objective-C 高级编程:iOS与OS X多线程和内存管理》适合有一定基础的iOS开发者阅读。

目录: 《Objective-C 高级编程:iOS与OS X多线程和内存管理》
第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章 Grand Central Dispatch  137
3.1  Grand Central Dispatch(GCD)概要  138
3.1.1  什么是GCD  138
3.1.2  多线程编程  140
3.2  GCD的API  144
3.2.1  Dispatch Queue  144
3.2.2  dispatch_queue_create  147
3.2.3  Main Dispatch Queue/Global Dispatch Queue  150
3.2.4  dispatch_set_target_queue  153
3.2.5  dispatch_after  154
3.2.6  Dispatch Group  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  Dispatch Semaphore  164
3.2.12  dispatch_once  166
3.2.13  Dispatch I/O  167
3.3  GCD实现  169
3.3.1  Dispatch Queue  169
3.3.2  Dispatch Source  171
附录A  ARC、Blocks、GCD使用范例  176
附录B  参考资料  182

序言: 本书旨在解说iOS与OS X中的ARC、Blocks和Grand Central Dispatch(GCD)。
与一般讲解书略有不同,这是一本“非常深奥的书”,内容涉及
iOS 5、OS X Lion引入的新的内存管理技术ARC;
iOS4、OS X Snow Leopard引入的多线程应用技术Blocks和GCD。
这些新技术在面向iOS 5、OsXLion应用开发时不可或缺。它们看似简单,但若无深入了解,就会变成技术开发的陷阱。本书在苹果公司公开的源代码基础上加以解说,深入剖析,这些内容是仅靠阅读苹果公司的参考文档而难以企及的。
读者对象
熟悉C/C++但不熟悉Objective-C的读者。
想知道Objective-C源代码究竟是如何运行的读者。
iOS或者Mac应用开发者(初学者以上水平、想进一步深入学习)。
致谢
在此向爽快接受紧急销售任务的达人出版会高桥先生、Impress Japan公司的烟中先生、赋予我编写机会的烟先生、百忙中进行排版制作的井田先生,以及提出中肯建议的Samuli先生和野崎先生一并致谢。
感谢主动承担翻译工作并提供全方位帮助的古本先生。
“我一直想拥有和控制我们所做的主要技术。”
——史蒂夫·乔布斯
没有您的热情和技术,不可能有这本书。感谢您,愿您安息。