【ios】MRC相关: 内存管理(附Demo)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/dangbai01_/article/details/82381892

Pre:

(1) 引用计数介绍

ObjC中内存的管理是依赖对象引用计数器来进行的:在ObjC中每个对象内部都有一个与之对应的整数(retainCount),叫“引用计数器”,当一个对象在创建之后它的引用计数器为1,当调用这个对象的alloc、retain、new、copy方法之后引用计数器自动在原来的基础上加1(ObjC中调用一个对象的方法就是给这个对象发送一个消息),当调用这个对象的release方法之后它的引用计数器减1,如果一个对象的引用计数器为0,则系统会自动调用这个对象的dealloc方法来销毁这个对象。

(2) 如果整个项目都想使用MRC

在Xcode中关闭ARC:项目属性—Build Settings--搜索“garbage”找到Objective-C Automatic Reference Counting设置为No即可。

(3) ARC中想用MRC   和   MRC中想用ARC

在ARC工程中使用MRC的类。方法如下:

在targets的build phases选项下Compile Sources下选择要不使用arc编译的文件,双击它,输入 -fno-objc-arc 即可

MRC工程中也可以使用ARC的类。方法如下:

在targets的build phases选项下Compile Sources下选择要使用arc编译的文件,双击它,输入 -fobjc-arc 即可 

(4)在MRC里边应该注意属性的参数

属性参数strong、retain和copy以及assign默认实现的setter方法是不一样的,这在demo中test3、4、5中会展示一下

(5)自定义对象的copy

在demo里实现了对car这个自定义对象的copy,遵守协议,实现协议方法,有兴趣的可以看一下

content:

光说不练假把式

POST:https://github.com/canwhite/QCMRC

猜你喜欢

转载自blog.csdn.net/dangbai01_/article/details/82381892