您的位置:首页 > 移动开发 > IOS开发

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函数名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: