IOS 内存管理

来源:互联网 发布:unity3d vs2015 编辑:程序博客网 时间:2024/05/29 19:30

IOS内存管理一直是头疼的问题,有时间做些简单的笔记

 使用assign: 对基础数据类型 NSIntegerCGFloat)和C数据类型(int, float, double, char, 等等)

·         使用copy NSString

·         使用retain 对其他NSObject和其子类

l        nonatomic关键字:

atomicObjc使用的一种线程保护技术,基本上来讲,是防止在写未完成的时候被另外一个线程读取,造成数据错误。而这种机制是耗费系统资源的,所以在iPhone这种小型设备上,如果没有使用多线程间的通讯编程,那么nonatomic是一个非常好的选择。

iOS 5 中对属性的设置新增了strong weak关键字来修饰属性(iOS 5 之前不支持ARC

l        strong关键字:

strong 用来修饰强引用的属性;对应原来的retain

该属性值对应 __strong 关键字,即该属性所声明的变量将成为对象的持有者。

l        weak关键字:

weak 用来修饰弱引用的属性;对应原来的assign

但是不同的是当对象被释放以后,对象自动赋值为nil并且,delegate  Outlet苹果推荐用 weak 属性来声明。同时,如上一回介绍的 iOS 5 之前的版本是没有__weak 关键字的,所以 weak 属性是不能使用的。这种情况我们使用unsafe_unretained

为单独文件指定是否使用ARC 

当你迁移一个久工程到ARC模式下-fobjc-arc 编译开关被默认的设置在所有的Objective-C 源代码上。 你可以使用-fno-objc-arc 来为特殊的class停用ARC 。在Xcode target“Build Phases”标签, 打开Compile Sources group,展开源代码列表, 双击你想要修改的源代码的名字,再弹出框里输入-fno-objc-arc,然后点Done按钮。

摘自:http://wormlxd.blog.163.com/blog/static/9749032220130452722793/
0 0
原创粉丝点击