2010-11-20 5 views
-1

Avoir une seule question "Comment corriger l'objet dealloc lorsque l'application va en arrière-plan?". Je travaille sur une application, tout fonctionne très bien et bien. Quand je mets l'application en arrière-plan et que je la redémarre, elle plante. Pas immédiatement (les étoiles de l'application juste là où je l'ai fermé), mais quand je choisis certaines cellules ou juste défiler table par exemple. Donc, je suis à peu près sûr que les appels d'applications ont déjà publié des données.Comment corriger l'objet dealloc lorsque l'application passe en arrière-plan?

ici est par exemple de dealloc

- (void)dealloc { 


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

Tout conseille?

Répondre

0

Je passe en revue et re-écrire mon propre code. Le problème était comme prévu dans l'allocation de mémoire. J'ai utilisé autorelease où je ne devrais pas. C'est toujours bizarre que l'application plante quand je l'ouvre à nouveau.

Merci à tous, pas vous les gars qui me donnent 2 négs, vous êtes saccadés. Ne soyez pas offensé, mais au lieu de donner quelques conseils, vous donnez simplement des negs non mis à jour.

1

À moins que vous ne libérez spécifiquement des éléments dans la méthode applicationDidEnterBackground de votre délégué d'application, rien ne doit être désalloué automatiquement pour vous.

Je n'ai jamais connu le problème que vous rencontrez. Es-tu certain que la même chose n'arrive pas après un certain temps même si tu ne la mets jamais en arrière-plan?

Voici une bonne explication de la façon dont tous les trucs de semi-va ensemble:

Understanding iOS 4 Backgrounding and Delegate Messaging

0

Ne relâchez aucun objet de ce type. Utiliser

- (void)dealloc { 

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

[super dealloc]; 
} 
Questions connexes