首页 > 代码库 > ARC
ARC
最近开是做新项目,准备尝试使用ARC,记录遇到的一些问题。
ARC是编译器特性,所以要求Xcode的最低版本为4.2。
ARC的规则:
- 不能调用dealloc方法(可以重写,做一些清除操作,例如delegate置空,清除非ARC管理的内存,不能调用[super dealloc],编译器会自动帮你出入该代码),不能调用retain,release,autorelease,retainCount。
- CFRetain,CFRelease仍正常使用
NSAllocateObject
和NSDeallocateObject 都不能使用(从没用过)
- 使用alloc创建对象,运行时自动来销毁对象
- C结构体中不能使用对象指针,推荐使用oc对象来代替C结构体
- id和void *之间不能随便的转换,详细请见Managing Toll-Free Bridging
- 不能使用NSAutoreleasePool,ARC提供
autoreleasepool
blocks来代替,比NSAutoreleasePool具有更高的效率(Why?) - 不能使用NSZone
注意:
在ARC使用属性时,不能使用new做前缀(应该是ARC在编译器阶段会为属性方法自动添加new做前缀)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。