是否需要释放initWithNibName

时间:2011-07-30 02:37:14

标签: iphone objective-c

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

3 个答案:

答案 0 :(得分:5)

是。阅读this section。以init...开头的任何内容都会为您提供您拥有的对象。

答案 1 :(得分:5)

@Mel:

是的,你需要释放它们。

Apple's Doumentation的一部分:

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

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

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

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

完成的

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

希望这会对你有所帮助。

答案 2 :(得分:2)

有问题的部分:

  

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

     

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

     

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

     

你不能放弃你不拥有的物品的所有权这是   只是前面的政策规则的必然结果,明确说明。

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

相关问题