iOS alloc 、retain、release函数
2015-12-24 11:16
344 查看
alloc 函数是创建对象使用,创建完后计数器为1,只用一次
retain是对一个对象的计数器+1,可以调用多次
release是对一个对象计数器-1,减到0对象就会从内存中释放
Objective-C类中实现了引用计数器,对象知道当前被引用的次数
最初对象的计数器是1
如果需要引用对象,可以给对象发送一个retain消息,这样对象计数器就加1
当不需要引用对象了,可以给对象发送release消息,这样对象计数器就减1
当计数器减到0,自动调用对象的dealloc函数,对象就会释放内存
计数器为0的对象不能再使用release和其他方法
如果对一个对象使用了alloc,[mutable]copy,retain,那么你必须使用相应的release或者autorelease
下面三种增加对象计数器
当明确的使用alloc方法来分配对象。
当明确地使用copy[WithZone:]或者mutableCopy[WithZone:]来copy对象时。
当明确使用retain消息。
上述三种方法使得计数器增加,那么就需要 [auto]release来明确释放对象,也就是递减计数器
属性可以是:
readwrite(缺省),readonly表示属性石可读写的,也就是可以使用getter和setter,而readonly只能使用getter
assign(缺省),retain,copy表示属性如何存储
nonatomic表示不用考虑线程安全
getter=…,setter=…重新设置getter函数和setter函数名
retain是对一个对象的计数器+1,可以调用多次
release是对一个对象计数器-1,减到0对象就会从内存中释放
Objective-C类中实现了引用计数器,对象知道当前被引用的次数
最初对象的计数器是1
如果需要引用对象,可以给对象发送一个retain消息,这样对象计数器就加1
当不需要引用对象了,可以给对象发送release消息,这样对象计数器就减1
当计数器减到0,自动调用对象的dealloc函数,对象就会释放内存
计数器为0的对象不能再使用release和其他方法
如果对一个对象使用了alloc,[mutable]copy,retain,那么你必须使用相应的release或者autorelease
下面三种增加对象计数器
当明确的使用alloc方法来分配对象。
当明确地使用copy[WithZone:]或者mutableCopy[WithZone:]来copy对象时。
当明确使用retain消息。
上述三种方法使得计数器增加,那么就需要 [auto]release来明确释放对象,也就是递减计数器
属性可以是:
readwrite(缺省),readonly表示属性石可读写的,也就是可以使用getter和setter,而readonly只能使用getter
assign(缺省),retain,copy表示属性如何存储
nonatomic表示不用考虑线程安全
getter=…,setter=…重新设置getter函数和setter函数名
相关文章推荐
- iOS tableview分割线从边框顶端开始
- ios 判断类型
- IOS 收集崩溃信息 NSException类
- iOS屏幕旋转
- 【iOS地图开发】巧妙打造中英文全球地图
- iOS开发系列--地图与定位
- IOS开发证书和代码签名
- IOS 实现QQ好友分组展开关闭功能
- 151224 iOS 推送通知处理
- iOS Xcode编译Undefined symbols for architecture xxx 错误总结
- iOS开发61- CocoaPods安装和使用
- iostat命令
- iOS完整学习路线图
- iOS开发-如何把广告,图片通过代码加到Screen上
- 处理iOS键盘通知
- iOS开发 关于tableView加载图片时出现卡顿时的解决办法
- IOS--工作总结--post上传文件(以流的方式上传)
- IOS修改圆角图片问题总结
- iOS开发60- git常用命令
- iOS9项目打包上线