2010-11-20 43 views
-1

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

这里是例子的dealloc

- (void)dealloc { 


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

任何建议吗?

回答

0

我检讨和重新编写自己的代码。问题出乎我的意料,在回忆内存时。我使用autorelease,我不应该。它仍然奇怪,导致应用程序崩溃时,我再次打开它。

谢谢大家,不是你们给我的礼物2 negs,你是混蛋。不要被冒犯,但不要提出一些建议,你只是给不带根本的否定。

1

除非您专门释放应用程序委托的applicationDidEnterBackground方法中的内容,否则不应为您自动释放任何内容。

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

下面是如何将所有的东西backgrounding结合在一起的一个很好的解释:

Understanding iOS 4 Backgrounding and Delegate Messaging

0

永远不要释放任何这样的对象。使用

- (void)dealloc { 

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

[super dealloc]; 
} 
相关问题