我使用initWithNibName来加载详细信息视图。我只是在想这些东西是否需要发布呢? init基本上增加了1的保留计数?initWithNibName需要发布
回答
@Mel:
是的,你需要释放它们。
从苹果公司的Doumentation A部分:
你拥有的任何对象创建
您创建使用名称以“黄金”,“新”,“复制”对象的方法,或“mutableCopy”(例如,alloc,newObject或mutableCopy)。
但是,它与initWithNibName
没有任何关系,但它与分配'mutableCopy','copy','retain'和'alloc'的内存有关。所以希望现在你很清楚。
init
关键字只是初始化一个对象。内存分配做虽然alloc
或retain
或copy
或mutableCopy
关键字
而且你正在谈论的1挡计数是因为alloc
关键字,而不是initWithNibName
的。
希望这可以帮助你。
是的。阅读this section。以init...
开头的任何内容都会为您提供一个您拥有的对象。
Nit:“init ...”不会创建对象。 “alloc”创建对象,“init ...”初始化它,并且我相当肯定(但不确定)它是保留对象的“alloc”。但是(除非在非常奇怪的情况下)你不能没有另一个,所以你的陈述在大多数情况下足够接近真相。 –
好吧,我将“创建”更改为“给你”。满足? – Yuji
满足一头母牛。 –
有问题的部分:在创建 您使用的方法 名称以“黄金”,“新”,“复制”创建一个对象,或“
你拥有的任何对象mutableCopy“(对于 示例,alloc,newObject或mutableCopy)。
您可以使用保留 一个物体的所有权接收的对象通常是保证它收到 方法内仍然有效,而且方法也可以安全地将对象返回到它的调用。 [...]
当你不再需要它,你必须放弃一个对象 的所有权你自己 您通过发送释放 消息或自动释放消息的放弃对象的所有权。在Cocoa术语中,放弃对象的所有权因此通常被称为“释放”对象的 。
您不得放弃您不属于自己的对象的所有权这是 只是以前的政策规则的必然结果,明确指出。
一般,但是,你应该避免思维保留数方面,重点所有权。如果你拥有它,它取决于你释放它。
- 1. Git发布需要返回发布
- 2. 需要发布UIWebView委托?
- 3. 我的店需要发布吗?
- 4. 我是否需要发布xib资源?
- 5. 发布需要大量内存的popover
- 6. 停止发布HTML,除非需要
- 7. RPM需要准确发布标签
- 8. 使用ARC,需要发布CGMutablePathRefs吗?
- 9. 从控制器发布。需要帮助
- 10. 您是否需要发布@property?
- 11. 需要在AppDelegate中发布什么?
- 12. 发布操作需要Rails授权吗?
- 13. Iphone:需要发布使用ASIFormDataRequest
- 14. 需要在html中发送布尔值
- 15. 我需要在ARC下发布CGColorSpaceRef吗?
- 16. $ _POST []我需要发布到论坛?
- 17. dispatch_queue_t需要使用dispatch_release()发布?
- 18. 需要从Android发布JSON对象
- 19. 需要发布IBOutlet对象吗?
- 20. 需要Jquery文件发布帮助
- 21. 需要发布到PHP和jQuery数组?
- 22. ios7 initWithNibName
- 23. 发现需要
- 24. Filehelpers发布发行文件,而不需要DLL
- 25. 我需要从工作灯适配器发送发布请求
- 26. Admob需要未发布的应用程序的市场URL(需要MY_AD_UNIT_ID)
- 27. 我需要哪个CMS?需要很容易发布某种帖子
- 28. 需要发布我的应用的Google Play更新需要多少时间?
- 29. 需要验证。您需要登录到您的Google帐户。应用发布后
- 30. 按需发布api?
当然,你也可以用[NSMutableArray数组]来创建一个对象,但是你不需要'释放'它。区别在于用'retain'(alloc/copy/et al)创建的对象和用额外的'autorelease'(几乎所有其他)创建的对象之间的区别。 –