繁体   English   中英

是否需要释放initWithNibName

[英]does initWithNibName need to be released

我使用initWithNibName加载详细信息视图。 我只是想这些东西需要发布吗? init基本上是添加1的保留计数?

是。 阅读本节 任何以init...开头的东西都会给你一个你拥有的对象。

@Mel:

是的,你需要释放它们。

来自Apple的Doumentation的一部分:

您拥有自己创建的任何对象

使用名称以“alloc”,“new”,“copy”或“mutableCopy”开头的方法(例如,alloc,newObject或mutableCopy)创建对象。

但是因为它与initWithNibName无关,但它与四个单词有关,这四个单词分配的内容是'mutableCopy','copy','retain'和'alloc'。 所以希望你现在很清楚。

init关键字只是初始化一个对象。 内存分配是通过allocretaincopymutableCopy关键字完成的

你所说的保留计数为1是因为alloc关键字,而不是initWithNibName

希望这对你有所帮助。

有问题的部分:

您拥有自己创建的任何对象使用名称以“alloc”,“new”,“copy”或“mutableCopy”开头的方法(例如,alloc,newObject或mutableCopy)创建对象。

您可以使用retain获取对象的所有权通常保证接收到的对象在接收到的方法中保持有效,并且该方法也可以安全地将对象返回给其调用者。 [...]

当您不再需要它时,您必须放弃您拥有的对象的所有权您通过向对象发送释放消息或自动释放消息来放弃对象的所有权。 因此,在Cocoa术语中,放弃对象的所有权通常被称为“释放”对象。

您不得放弃您不拥有的对象的所有权这只是之前明确规定的政策规则的必然结果。

但是,一般来说,您应该避免考虑保留计数并关注所有权 如果您拥有它,则由您来释放它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM