黑马程序员技术交流社区
标题:
计数器的基本操作
[打印本页]
作者:
小龙女的萝卜
时间:
2015-5-23 09:12
标题:
计数器的基本操作
Person *p = [ [Person alloc] init]
[p release];
p = nil;
每次进行完 release 操作后,都要把当前指针清空吗?每次都要写p = nil吗?
作者:
Theshy
时间:
2015-5-23 21:24
MRC机制下 是这样的 p=nil; 是一个很好的习惯
不过现在都是用ARC 了
以后不会这样用了
到后边你就会发现根本不需要release
作者:
天是蓝色的
时间:
2015-5-23 22:38
这个看过,好像是有alloc就得有release
作者:
天是蓝色的
时间:
2015-5-23 22:39
这个看过,好像是有alloc就得有release
作者:
gclforios
时间:
2015-5-23 22:59
本帖最后由 gclforios 于 2015-5-23 23:02 编辑
楼主你使用[p release]时 相当于对p进行内存释放,释放完后引用计数器变为0,那么系统自己会调用dealloc进行内存释放。
详情请参考我的关于手动计数引用和自动释放池总结
http://bbs.itheima.com/thread-198150-1-1.html
(出处: 黑马程序员IT技术论坛)
欢迎交流
作者:
hui1107464497
时间:
2015-5-24 18:01
如果实例话的对象没有被引用了,也就是说对象的引用计数器变成了0的时候,那么在内存中的这块空间就不可用来了,而此时还有个指针指向这块内存,这个指针实际上也没什么意义了,就会将这个指针清空。。至少我是怎么理解的:lol
作者:
XiaoBaoMi
时间:
2015-5-24 18:08
alloc 是计数器加+1 release是计数器-1,不是清空
作者:
jingkai
时间:
2015-5-24 21:25
对象销毁了 指针赋值为空 那是必要的
作者:
yuang4074
时间:
2015-5-25 20:31
hui1107464497 发表于 2015-5-24 18:01
如果实例话的对象没有被引用了,也就是说对象的引用计数器变成了0的时候,那么在内存中的这块空间就不可用 ...
补充:不清空,会变成野指针,导致下次误用这个指针,会报错
作者:
yuang4074
时间:
2015-5-25 20:32
hui1107464497 发表于 2015-5-24 18:01
如果实例话的对象没有被引用了,也就是说对象的引用计数器变成了0的时候,那么在内存中的这块空间就不可用 ...
补充:不清空,会变成野指针,导致下次误用这个指针,会报错
作者:
lyricdon
时间:
2015-5-25 23:11
不需要,系统自动release
作者:
lyricdon
时间:
2015-5-25 23:43
支持支持了!!!
作者:
lyricdon
时间:
2015-5-26 00:07
支持支持支持!!!加油学
作者:
wangguanyang
时间:
2015-5-26 07:24
用ARC好了,省的麻烦
作者:
wwwwjay
时间:
2015-5-26 15:16
赋值为Null 是好的习惯, 防止以后误用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2