当app进入后台时如何正确dealloc对象?

时间:2010-11-20 21:12:29

标签: iphone memory-management ios4 multitasking dealloc

只有一个问题“当应用程序转到后台时如何正确释放对象?”。我正在开发一些应用程序,一切都很好。当我把应用程序放到后台然后再次启动时它会崩溃。不是立即(应用程序星星我关闭它的地方),但当我选择一些单元格或只是滚动tableview为例。所以我很确定应用程序调用已发布的数据。

这里是dealloc的例子

- (void)dealloc {


    [anObject release];
    [array release];
    [locationManager release];
    [currentLatitude release];
    [currentLongitude release];
    [filteredListContent release];
    [super dealloc];
}

有任何建议吗?

3 个答案:

答案 0 :(得分:1)

除非您在app delegate的applicationDidEnterBackground方法中专门取消分配内容,否则不应为您自动释放任何内容。

我从来没有遇到过你遇到的问题。你是否确定一段时间后不会发生同样的事情,即使你从未把它放在后台?

这里有一个很好的解释,说明所有背景材料如何组合在一起:

Understanding iOS 4 Backgrounding and Delegate Messaging

答案 1 :(得分:0)

我查看并重新编写自己的代码。问题就像我预期的释放内存一样。我使用autorelease,我不应该。它仍然很奇怪因为当我再次打开它时应用程序崩溃了。

谢谢大家,不是你们送给我的2个人,你们是混蛋。不要被冒犯,但不要给一些建议你只是给不接地的negs。

答案 2 :(得分:0)

永远不要释放这样的任何物体。使用

- (void)dealloc {

if(anObject){
[anObject release];
anObject = nil;
}
if(array){
[array release];
array = nil;
}
//same approach for all.

 [super dealloc];
}