我使用initWithNibName加载详细信息视图。我只是想这些东西需要发布吗? init基本上是添加一个保留计数为1?
答案 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
关键字只是初始化一个对象。内存分配是通过alloc
或retain
或copy
或mutableCopy
关键字
您所说的保留计数为1是因为alloc
关键字,而不是initWithNibName
。
希望这会对你有所帮助。
答案 2 :(得分:2)
有问题的部分:
您拥有自己创建的任何对象 您可以使用方法创建对象 其名称以“alloc”,“new”,“copy”或“mutableCopy”开头(for 例如,alloc,newObject或mutableCopy)。
您可以使用保留获取对象的所有权 收到的对象通常保证在收到的方法中保持有效 in,该方法也可以安全地将对象返回给它的调用者。 [...]
当您不再需要它时,您必须放弃对象的所有权 你拥有 您通过向对象发送版本来放弃对象的所有权 消息或自动释放消息。在可可术语中,放弃 因此,对象的所有权通常被称为 “释放”一个物体。
你不能放弃你不拥有的物品的所有权这是 只是前面的政策规则的必然结果,明确说明。
但是,一般情况下,您应该避免考虑保留计数并关注所有权。如果您拥有它,则由您来释放它。