ios工程中使用ARC技术
来源:互联网 发布:2个excel表格数据匹配 编辑:程序博客网 时间:2024/06/04 19:11
自动计数(ARC)是一个编译期间工作的能够帮你管理内存的技术,通过它,程序人员可以不需要在内存的retain,释放等方面花费精力。
ARC在编译期间为每个Objective-C指针变量添加合适的retain, release, autorelease等函数,保存每个变量的生存周期控制在合理的范围内,以期实现代码上的自动内存管理。
ios4版本及以上才能支持ARC。
使用ARC需要注意以下几点:
1. 禁止使用dealloc,
retain
, release
, retainCount
, autorelease。禁止任何形式调用和实现(dealloc可能会被实现),包括使用
@selector(retain)
, @selector(release)
等的隐含调用。
你可能会实现一个和内存管理没有关系的dealloc,譬如只是为了调用[systemClassInstance setDelegate:nil]
,但是请不要调用[super dealloc]
,因为编译器会自动处理这些事情。
2.不能在C语言中的结构中使用Objective-c中的类的指针。
3.不能使用NSAutoreleasePool
.作为替代,@autoreleasepool被引入,你可以使用这个效率更高的关键词。
4.不能使用memory zones. NSZone不再需要
—本来这个类已经被现代Objective-c废弃。
5.禁止以new开头的属性变量命名。
属性变量修饰符
weak和strong两个修饰符是新引进的,使用例子如下:
// 下面的作用和: @property(retain) MyClass *myObject;相同
@property(strong) MyClass *myObject;
// 下面的作用和"@property(assign) MyClass *myObject;"相识
// 不同的地方在于,如果MyClass的实例析构后,这个属性变量的值变成nil,而不是一个野指针,
@property(weak) MyClass *myObject;
其他的新功能
使用ARC技术,可以使得在栈上分配的指针隐式的初始化为nil,比如
- (void)myMethod {NSString *name;NSLog(@"name: %@", name);}上面的代码会Log出来一个null,不会象不使用ARC技术的时候使得程序崩溃
- ios工程中使用ARC技术
- iOS 开发,工程中混合使用 ARC 和非ARC
- ios开发,工程中混合使用ARC和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- ios开发,工程中混合使用ARC和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- 在iOS工程中组合使用ARC和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- IOS开发arc工程中使用非arc文件
- iOS 开发,工程中混合使用 ARC 和非ARC
- iOS工程中混合使用 ARC 和非ARC
- iOS 开发,工程中混合使用 ARC 和非ARC
- 希腊新民这党派大选获胜,非美跳空高开
- CKFinder2.1破解的方法(删除This is the demo version of CKFinder)
- linux下一个网卡配置多个ip
- daemon相关的文件(来自鸟哥的私房菜第三版)
- Sql Server字符串前面加上【N】的作用!
- ios工程中使用ARC技术
- 黑马程序员_Asp.net缓存学习总结
- C++代码设计与重用
- ubuntu 系统服务设置 - chkconfig命令
- 我喜欢兰州拉面
- linux集群中ntp配置
- DOS命令——把普通文件变成系统文件
- 《火星人开发纪实:敏捷开发一千零一夜》第一个月:一个产品的诞生
- vector类