本书在苹果公司公开的源代码基础上,深入剖析了对应用于内存管理的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
《VC++.NET入门》提供了学习VisualC++工具的循序渐进的指导和创建应用程序的向导。你将学习设计应用程序窗口、使用控件、显示图形
《数字娱乐设计史》以电子游戏发展史为主线,结合电影、音乐与流行文化的发展趋势,对电影、音乐及大众流行文化的演进作了详尽的
《唐诗三百首(经典译林)》内容简介:《唐诗三百首》编成于乾隆年间,全书共选五七言古近体诗三百一十首为八卷,或作六卷。附录有
Everystageinthedesignofanewwebsiteisanopportunitytomeetormissdeadlinesandbudgeta...
InTheWilltoTechnologyandtheCultureofNihilism,ArthurKrokerexploresthefutureofthe2...
InteriordesignguruAxelVervoordtshareshislatestinspirationsforthehome.AxelVervoor...
《交互界面设计》是一本关于交互设计的入门读物。交互设计分为三个大的领域,分别是基于屏幕的界面设计、交互产品设计以及服务设
《翁文灏与抗战档案史料汇编(上、下册)》内容简介:本资料集收录了翁文灏与抗战有关的档案史料,有五个方面的内容:一是战前政治
《三维CAD/CAM》内容简介:结合机械类专业的实际,以够用为度,主要讲述设计模块和加工模块。第一部分为设计模块(即CAD模块),主
《SQL Server与Oracle迁移指南》内容简介:本书主要对SQL Server与Oracle两种数据库功能间的相互迁移进行对比讲解,向开发人员提供
Inthelastfewyearsgametheoryhashadasubstantialimpactoncomputerscience,especiallyo...
GPRS技术继承和发展了GSM体系结构,并为第三代移动通信技术的发展提供了基础。《通用分组无线业务(GPRS)技术与应用》结合GSM相关
ASP.NET程序设计 内容简介 本书系统地讲述了使用ASP.NET进行网络程序设计。第1章讲述了.NET框架结构及如何搭建运行环境,并开发了第1个简单的ASP...
这是一本小题大作的书!书中谈的不是令人肃然起敬的建筑和艺术,而是把橡皮圈、马桶刷、胡椒罐和碗盘看待得和建筑、艺术一样认真
JavaScript是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特
《Altium Designer PCB设计官方指南:基础应用》内容简介:本书是一部系统论述Altium Designer 20 PCB基础设计的实战教程(含实...
《汽车材料及轻量化趋势》内容简介:作为提高汽车燃油经济性的手段之一,轻量化并不是新鲜的技术名词。从20世纪70年代以来,汽车轻
《effectiveobjective-c2.0:编写高质量ios与osx代码的52个有效方法》是世界级c++开发大师scottmeyers亲自担当顾问编辑的“...
《设计模式之禅》内容简介:全书共分为四部分,第一部分从原理的角度阐述了面向对象程序设计的6大原则;第二部生动地讲解和剖析了2
《行成于思:王志纲中国走势思考录》内容简介:“行成于思毁于随”。从进入中南海汇报的新华社资深记者,转变为顶尖战略咨询机构智