本书在苹果公司公开的源代码基础上,深入剖析了对应用于内存管理的ARC 以及应用于多线程开发的Blocks 和GCD。这些新技术看似简单,实则非常容易成为技术开发的陷阱,开发者仅靠阅读苹果公司的文档是不够的。
本书适合有一定基础的iOS 开发者阅读。
第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 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
《解密性传播疾病》内容简介:本书作者从临床工作数十年的经验中收集了50个问题,涉及性病的预防、传播、发现、治疗及生活细节等方
《岩石与彩虹》内容简介:本书系上海交通大学传记中心“现代传记文库”之三。著名学者杨正润先生在学术势头正旺之时,将大部分的精
本书从理论和实际应用出发,全面系统地介绍神经网络的基本模型、基本方法和基本技术,涵盖了神经系统科学、统计模式识别、支撑向
五笔字型速查速学宝典-双色版-(含指法训练卡) 本书特色 《五笔字型速查速学宝典(双色版)》:新华字典的查询方式部首检字配有86版编码兼顾86/98版编码与拆分...
《Maven应用实战》内容简介:Maven是Java项目构建工具,由资深Java讲师结合多年的教学经验编写,是为数不多的帮助程序员从零开始认
《数字经济与数字货币》内容简介:数字经济正加速向经济运行的每个细节渗透,带来一场经济系统的变革,潜移默化地改变着经济运行的
模糊测度和模糊积分及在分类技术中的应用 内容简介 本书从模糊积分作为一种分类技术的角度巴以论述,内容涵盖了模糊测度与积分的基础知识,模糊积分作为一种分类器和模糊...
《PHP编程(第4版)》内容简介:PHP是一种被广泛使用的Web编程语言,它简单易用,而且与时俱进,不断进化,提升性能。本书基于PHP
《5分钟生物课》内容简介:你相信鱼在水中也憋气吗?你知道植物用什么“语言”进行交流吗?果子狸是SARS的“元凶”吗?植物真能防辐
2025年,你会住在哪里?以怎样的方式与这个世界保持联系?看见吗?这个未来并不遥远,它是可以触摸的。这是一个以建筑设计的方式
《田小七来啦6:哎呀,又闯祸了》内容简介:黄莹莹发现田小七、张大嘴等人的行动鬼鬼祟祟的,为了弄清楚真相,她进行了一次跟踪。她
《C++新经典》内容简介:本书是一部C/C++编程语言书,定位在C/C++语言本身的讲解上面。本书包含纸质图书以及教学源代码文件。本书共
《全草类中草药彩色图鉴》内容简介:本书收载了常用全草类中草药100种,详细介绍了每种中草药的别名、来源、产地、采收加工、原植物
感性工程学是什么,能干什么,如何使用,走向何方,这是《感性工程学》所要回答的4个关键问题,同时,也构成了感性工程学整个理论
《我因思爱成病》内容简介:这是作者李兰妮此前已出版的长篇纪实散文《旷野无人——一个抑郁症患者的精神档案》的续篇。作者持续探
计算机网络应用入门 本书特色 本书从利用计算机和因特网收集信息、获取信息、利用信息这个角度出发,以网络技术的基础应用为目标,联系局域网的建设和因特网应用,讲述网...
《Java经典入门指南》内容简介:本书基于新版的Java 11编写,全面系统地介绍Java程序员必须掌握的核心基础知识,这些内容融合在三大
《Python 3面向对象编程(第2版)》内容简介:本书主要介绍如何使用Python3进行面向对象编程。第1~4章介绍面向对象这一编程范式的
《AdobeAfterEffectsCS4高手之路》由Adobe中国资深专家李涛先生倾力编写,是一本讲解AfterEffects影视动画技术的案例书。全书共分
Whenitwasfirstpublishedin1972,HubertDreyfussmanifestoontheinherentinabilityofdis...