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

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

内容简介

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

《图灵程序设计丛书·Objective-C高级编程:iOS与OS X多线程和内存管理》适合有一定基础的iOS开发者阅读。

作者简介

Kazuki Sakamoto,日本软件工程师,具有17年开发经验。在StackOverflow上的威望值超过4500。著有《iOS 4编程基础》、《iPhoneiPad cocos2d游戏编程》等。

Tomohiko Furumoto,日本软件工程师,擅长游戏和移动应用开发。

目录

第1章 自动引用计数 
1.1 什么是自动引用计数 
1.2 内存管理/引用计数 
1.2.1 概要 
1.2.2 内存管理的思考方式 
1.2.3 alloc/retain/release/dealloc实现 
1.2.4 苹果的实现 
1.2.5 autorelease 
1.2.6 autorelease实现 
1.2.7 苹果的实现 
1.3 ARC规则 
1.3.1 概要 
1.3.2 内存管理的思考方式 
1.3.3 所有权修饰符 
1.3.4 规则 
1.3.5 属性 
1.3.6 数组 
1.4 ARC的实现 
1.4.1 __strong修饰符 
1.4.2 __weak修饰符 
1.4.3 __autoreleasing修饰符 
1.4.4 引用计数 
第2章 Blocks 
2.1 Blocks概要 
2.1.1 什么是Blocks 
2.2 Blocks模式 
2.2.1 Block语法 
2.2.2 Block类型变量 
2.2.3 截获自动变量值 
2.2.4 __block说明符 
2.2.5 截获的自动变量 
2.3 Blocks的实现 
2.3.1 Block的实质 
2.3.2 截获自动变量值 
2.3.3 __block说明符 
2.3.4 Block存储域 
2.3.5 __block变量存储域 
2.3.6 截获对象 
2.3.7 __block变量和对象 
2.3.8 Block循环引用 
2.3.9 copy/release 
第3章 Grand Central Dispatch 
3.1 Grand Central Dispatch(GCD)概要 
3.1.1 什么是GCD 
3.1.2 多线程编程 
3.2 GCD的API 
3.2.1 Dispatch Queue 
3.2.2 dispatch_queue_create 
3.2.3 Main Dispatch Queue/Global Dispatch Queue 
3.2.4 dispatch_set_target_queue 
3.2.5 dispatch_after 
3.2.6 Dispatch Group 
3.2.7 dispatch_barrier_async 
3.2.8 dispatch_sync 
3.2.9 dispatch_apply 
3.2.10 dispatch_suspend/dispatch_resume 
3.2.11 Dispatch Semaphore 
3.2.12 dispatch_once 
3.2.13 Dispatch I/O 
3.3 GCD实现 
3.3.1 Dispatch Queue 
3.3.2 Dispatch Source 
附录A ARC、Blocks、GCD使用范例 
附录B 参考资料 

感悟与笔记

内存管理原则:

  • 自己生成的对象,自己所持有
  • 非自己生成的对象,自己也能持有
  • 不再需要自己持有的对象时释放
  • 非自己持有的对象无法释放

自己生成的对象,自己所持有

//自己生成并持有对象
id obj = [[NSObject alloc] init];
//自己持有对象

使用NSObject类的alloc类方法就能自己生成并持有对象。指向生成并持有对象的指针使用一下名称开头的方法名意味着自己生成的对象只有自己持有:

  • alloc
  • new
  • copy
  • mutableCopy

根据以上规则,下列名称也意味着自己生成并持有对象

  • allocMyObject
  • newThatObject
  • 但是以下规则无效

  • allocate
  • newer

不再需要自己持有的对象时释放

释放时使用release方法

//自己生成并持有对象
id obj = [[NSObject alloc] init];
//自己持有对象
[obj release];
//释放对象。指向对象的指针任然被保留在变量obj中,貌似能够访问
//但是对象一经释放绝对不可访问

会员免费下载

链接:https://pan.baidu.com/s/1bKYb5Ix6Ag9DDMBFMEkfng

提取码: ****** 查看

¥69/年 开通VIP会员

成为本站VIP会员即可无限下载。 请先点击百度网盘,看资源是否还在,不在请点击链接通知站长补资源。

资源标签点击标签可查看对应分类的资源

iOSMac OSObjective-C

资源推荐

免费 图解数据结构:使用Java

CSS世界

C++ 程序设计语言:第4部分 标准库(原书第4版)

Vue.js快速入门

Java编程思想(第4版) [thinking in java]

JavaScript DOM编程艺术(第2版)

C++ Primer Plus(第6版) 中文版

现代操作系统(原书第4版)

Copyright © 2021-2022 知识猫. All Rights Reserved.