Question

J'ai une application iPhone. Il semble fonctionner très bien. Lorsque je me connecte à un iPhone provisionnés à Xcode et exécuter l'application, le journal de la console dans la fenêtre Organisateur, se plaint toujours d'une erreur de segmentation en quittant l'application avec la touche d'accueil.

Quelqu'un a vu d'autre cela, et avez-vous une idée de ce que le problème pourrait être? J'utilise un fil pour charger les pages Web dans le backround, mais j'arrête le fil lors de la sortie.

Mon application ne sauvegarder certaines informations persistantes. Lorsque j'utilise la construction et analyser la fonction que je reçois des 2 éventuelles fuites de mémoire, mais dans chaque cas je l'allocation d'un objet et de le garder dans un tableau.

Toutes les idées, ou est-ce normal?

Était-ce utile?

La solution

Essayez de lancer votre application avec NSZombieEnabled. Cela vous indiquera si vous êtes sur un objet libérer. Pour activer les zombies procédez comme suit:

  
      
  1. Choisissez Projet> Modifier actif pour ouvrir Executable Info exécutable   fenêtre.
  2.   
  3. Cliquez sur Arguments.
  4.   
  5. Cliquez sur le bouton Ajouter (+) dans les « Variables à la   section de l'environnement ».
  6.   
  7. Entrez NSZombieEnabled dans la colonne Nom et YES dans la colonne Valeur.
  8.   
  9. Assurez-vous que la case pourThe entrée NSZombieEnabled est sélectionnée.
  10.   

Autres conseils

A la sortie de votre application peut trop libérer un objet chaque objet essayer de mettre en avant de le relâcher ou faire du débogage dans la méthode dealloc.

Peut-être que vous publiez quelques objets de fois plus que son nombre conserver. Commentaire sur les appels -release dans vos méthodes de dealloc (ou ailleurs) jusqu'à trouver le coupable.

Ensuite, décommentez-out qui appellent et regarder ailleurs dans votre code où vous essayez de plus la libération de cet objet.

Si vous utilisez des méthodes pratiques, par exemple, (par exemple [NSString stringWithFormat:@"..."]) par opposition aux méthodes alloc-init (par exemple [[NSString alloc] initWithFormat:@"..."]) l'objet de commodité résultant est autoreleased et ne devrait pas être libéré manuellement.

Mon problème était uididfaker et locationholic de cydia, et après les désinstaller piste de Xcode sur mon iphone très bien.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top