2015-10-20 iOS开发课程培训总结(八)

今天继续复习了一下内存管理的知识。

1、学习了ARC(Automatic Reference Count)自动引用计数MRC(Manual Reference Count)人工引用计数和 自动释放池autorelease(半自动释放)的区别。

MRC

 优点:手动去设计可以随意更改 、自由

缺点:不安全、容易出现问题、野指针会消耗内存、代码容易出现冗余


ARC :

优点:全自动

缺点:它会在程序结束的同时去自动释放所有需要释放的对象空间,会出现有的对象在释放之前先占用了大量的内存空间的情况,因此影响程序运行


ARC 的关键词 strong weak

相互引用时:


头文件一边是#import

另一边是@class (在.m文件里再import)

为避免冲突,一边用 strong 一边用weak。

2、还有一个知识点是关于断点和断言的简单了解。


3、MRC和ARC混编

iOS5.0以后就开始可以使用ARC( Automatic Reference Counting:自动引用计数)来代替之前的MRC(Manual Reference Counting:人工引用计数)。使用ARC会减少很多代码和忘了释放对象的苦恼。但是事情都有两面性。使用了ARC之后如果你想复用以前写过的使用MRC的类, 就会出报错。这时候怎么办?方法比较简单, 只需要做下面的一个步骤就可以解决:


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

 

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

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














  

你可能感兴趣的:(2015-10-20 iOS开发课程培训总结(八))