0

只有一个问题“当应用程序进入后台时如何正确释放对象?”。我正在开发一些应用程序,一切正常。当我将应用程序置于后台然后再次启动时,它会崩溃。不是立即(应用程序在我关闭它的地方加注星号),而是当我选择一些单元格或只是滚动表格视图时。所以我很确定应用程序调用已经发布的数据。

这是dealloc的示例

- (void)dealloc {


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

有什么建议吗?

4

3 回答 3

1

除非您在应用程序委托的 applicationDidEnterBackground 方法中专门解除分配,否则不应自动为您解除分配。

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

这是对所有背景内容如何组合在一起的一个很好的解释:

了解 iOS 4 后台和委托消息传递

于 2010-11-20T22:05:03.727 回答
0

我审查并重新编写自己的代码。问题正如我在内存释放中所预期的那样。我在不应该的地方使用了自动释放。它仍然很奇怪,因为当我再次打开它时应用程序确实崩溃了。

谢谢大家,不是那些给我2否定的人,你们是混蛋。不要被冒犯,而不是给出一些建议,你只是给出毫无根据的否定。

于 2010-11-21T12:26:38.970 回答
0

永远不要像这样释放任何物体。采用

- (void)dealloc {

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

 [super dealloc];
}
于 2013-11-21T18:48:28.767 回答