回答
是:
- (void)dealloc
{
// Other release code
[_foo release];
[super dealloc];
}
编辑:由于@borrrden约期间dealloc
避免设置器尖端。
建议不要在dealloc方法中使用“self”(用于解决可能存在的KVO问题),而是仅仅释放(并且如果您想要,则为nil)备份变量。 – borrrden 2013-05-14 07:39:56
@borrrden你能否提供一个建议的来源?我的理解是你让二传手为你做了工作,这意味着它必须使用'self'来调用。 – trojanfoe 2013-05-14 07:41:25
@trojanfoe [在dealloc中有没有使用self.property = nil的问题?](http://stackoverflow.com/questions/5621139/is-there-any-problem-using-self-property-nil-in-dealloc ),只是看看。(它也是我的一个新的信息) – 2013-05-14 07:47:03
是你应该释放
发布,你可以这样写:
- (void)dealloc
{
// other release stuff
if(foo != nil)
{
[foo release];
foo = nil;
}
[super dealloc];
}
对nil的测试是不必要的。你可以安全地将'release'发送给一个零对象。 – 2013-05-14 08:27:06
如果他忘记了它,那么(foo!= nil)条件是真的,foo(一个悬挂指针)将被释放,导致崩溃。这对你提到的情况没有帮助。 – 2013-05-15 07:13:28
是的,你的权利。如果对象尚未发布,我想发布。 – 2013-05-15 08:16:48
- 1. 伊娃和财产释放dealloc
- 2. 我应该释放self.view吗?
- 3. 我应该释放NSImage吗?
- 4. 我应该使用什么限定词来声明块为伊娃?
- 5. 我应该释放的dealloc
- 6. 伊娃包含什么?
- 7. 通过伊娃槽NSNotificationCenter
- 8. AVAudioPlayer不打无伊娃
- 9. iPhone伊娃命名约定
- 10. 伊娃可以存储对所有者的引用吗?
- 11. 我应该在我的dealloc函数中释放IBOultet吗?
- 12. 我应该从CGImageSourceCopyPropertiesAtIndex调用中释放返回对象吗?
- 13. 我应该用这种方法释放对象吗?
- 14. 应该释放线程对象吗? C#
- 15. 如果我要自己释放内存,我应该使用ALLOCA_N吗?
- 16. @interface或@implementation中的私人伊娃尔
- 17. iPhone上的伊娃继承问题
- 18. 我应该释放指向数组中项目的指针吗?
- 19. 我应该在Linux中释放由getpwuid()返回的指针吗?
- 20. 我应该释放这个吗? Objective-C中的内存管理
- 21. 我应该叫evhttp_request_free释放http服务器中的资源吗?
- 22. 我应该释放从NSArray中检索到的对象吗?
- 23. 我应该自己释放强大的属性吗?
- 24. 在这种情况下,我应该担心释放资源吗?
- 25. 我应该实施IDisposable以释放“非托管”内存吗?
- 26. 我应该在dealloc中释放实例变量和属性吗?
- 27. 我应该在GlobalRealloc之后释放全局内存吗?
- 28. 在为它分配新值之前,我应该释放NSString吗?
- 29. 我应该在声音中释放NSBundle吗?
- 30. 我们应该在dealloc方法中释放委托吗?
是的,你应该 - 你的对象之外的东西可能已经将其设置为某个对象。 – 2013-05-14 07:36:27
你应该在你的项目中使用ARC更好的内存管理 – 2013-05-14 07:46:02
@AhmedZ。不,这不是更好。 – justin 2013-05-14 08:00:23