![](/img/trans.png)
[英]Difference between [NSMutableData data] and [[NSMutableData alloc]init]
[英]When does [[NSMutableData data] retain] is released?
我曾经在许多代码中看到过[[NSMutableData data]保留]指令,但我不知道何时释放保留的对象...您能帮我理解吗?
提前谢谢
斯蒂芬
简短的答案是:直到您释放它,它才会被释放。 您已经增加了保留计数,并且这样做了,您承担了以后释放它的责任。
您可能已经看到的一种情况是人们直接分配给ivars。 当包含对象被销毁时,或者在重新分配ivar时,发布应在-dealloc
。 但是无论哪种情况,您都必须记住这样做,否则您的代码将泄漏。
不是。 漏了
[NSMutableData data]
已经自动释放-它将在当前自动释放池的末尾(即在大多数情况下,当前运行循环迭代的末尾)释放。通过发送-retain
消息,您可以告诉它保留更长的时间,但是没有相应的-release
消息,它将永远不会有0
的保留计数,因此永远不会被释放。
当您将[NSMutable数据]的保留计数加1时,它才被释放。 通过使用[[NSMutable data] retain]
您可以在保留数上添加一个,而释放它,则可以从保留数中减少一个。 因此,在使用完它(在dealloc方法中)后,请释放它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.