web-dev-qa-db-fra.com

EXC_BAD_access code = 2 adresse 0x8

J'ai une application sur laquelle je travaille, qui fonctionnait parfaitement sur iOS 6 dans XCode 4.5, mais maintenant j'ai téléchargé XCode 5 avec iOS 7 et je reçois cette erreur,

Thread 1: EXC_BAD_access code = 2 adresse 0x8

en main.m:

#import <UIKit/UIKit.h>
#import "TestAppDelegate.h"

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([TestAppDelegate class]));
    }
}

J'ai téléchargé iOS 6 sdk et le code fonctionne parfaitement sur iOS 6 sdk yet mais avec iOS 7, je reçois cette erreur, et je ne sais pas pourquoi? J'essaie de déboguer cela, mais je n'ai aucune information sur le plantage. J'ai lu quelque chose sur les zombies et l'ai activé en allant dans Produit-> Modifier le schéma-> Diagnostic-> Activer l'objet Zombie. Mais même après cela, je n'ai rien obtenu d'utile.

Des pointeurs?

16
hossein1448

Je voudrais développer le conseil donné par Vinzzz mais en différant légèrement (exception non point d'arrêt symbolique).

Le problème ici est que le programme s'est arrêté sur une exception interceptée par le système d'exploitation (mauvais accès). Vous devez aller une étape plus tôt que cela, pour voir l'exception dans le code qui conduirait à une exception iOS. Accédez à l'onglet points d'arrêt dans la section gauche du panneau d'écran Xcode (Breakpoint Navigator). Ensuite, au bas du panneau, il devrait y avoir un signe +. Cliquez ici et ajoutez un "point d'arrêt d'exception". Réexécutez votre programme et vous devriez maintenant avoir un point d'arrêt lorsque le problème est tenté d'être introduit dans l'environnement du système d'exploitation. Cela donne des informations sur qui et quelle est la cause.

15
Faisal Memon

Lorsque vous arrivez à l'invite (lldb), essayez d'appuyer sur le bouton Continuer. Cela peut révéler le message d'erreur sous-jacent en haut de la console de débogage. Recherchez le haut du texte en gras pour voir quel objet possible est à l'origine du problème. Ce type d'erreur fait généralement référence à une tentative d'accès à un objet qui a été désalloué.

0
Tommie C.

J'ai aussi eu cette erreur parce que dans ma classe de modèle utilisateur, j'avais un objet supplémentaire que j'ai déclaré

var image = UIImage() 

Je ne l'ai pas utilisé pour cette tâche, je l'ai retiré de la classe de modèle, mon application ne s'est pas bloquée, je vérifierais la classe de modèle.

0
Akbar