2009-09-14 6 views
2

Je viens de passer à Xcode 3.2 et j'utilise la fonction Build and Analyze pour vérifier l'ancien code pour les erreurs.Dans Xcode 3.2 sous iPhone-SDK 3.1, comment éviter l'erreur "dead store" de l'analyseur CLANG?

Tout en faisant quelque chose que je pensais être anodin, je reçois cette erreur:

« magasin mort: valeur stockée « newBook ​​» pendant son initialisation est jamais lu dans SpellTest.m »

#define kSpellBookFilename @"TestBookSaver" 

-(void)testBookLoadFromDisk; 
{ 
    // restore object from disk 
    SpellBook *newBook = [[[SpellBook alloc] init] autorelease]; 
    newBook = [NSKeyedUnarchiver unarchiveObjectWithFile:kSpellBookFilename]; 

    // show restored object 
    NSLog(@"archived copy %@", newBook); 
} 

Suis-je en train d'initialiser cet objet ou est-ce un faux positif?

Répondre

5

C'est un magasin mort. Pourquoi avez-vous même initialiser un nouvel objet SpellBook dans la première ligne de code lorsque vous le jetez juste dans la ligne suivante? Supprimez simplement la première ligne (et déplacez la déclaration de type sur la seconde).

+0

FAITES-VOUS !!!! Je savais que c'était vrai avec les objets natifs, mais j'avais en quelque sorte compris que les objets personnalisés devaient d'abord être alloués/initiés. Je suis un noob d'Obj-C mais c'est juste idiot rétrospectivement. Merci mec, je viens de monter d'un niveau. – willc2

Questions connexes