2010-01-11 4 views
0

J'ai reçu une erreur indiquant que "savedNumberDict" est hors de portée. Je ne suis pas tout à fait sûr où chercher une solution. Aucune suggestion? Le code est inférieur à celui que j'utilise. Merci.Qu'est-ce que Out Of Scope signifie?

- (void)applicationDidFinishLaunching:(UIApplication*) application { 
    self.savedNumber = [[NSUserDefaults standardUserDefaults]objectForKey:kNumberLocationKey]; 

    if (savedNumber == nil) { 
     savedNumber = @"555 555 1212"; 
     NSDictionary *savedNumberDict = [NSDictionary dictionaryWithObject:savedNumber forKey:kNumberLocationKey]; 
     [[NSUserDefaults standardUserDefaults] registerDefaults:savedNumberDict ]; 
    } 

    [window addSubview:viewController.view]; 
    [window makeKeyAndVisible]; 
} 
+1

Puisque ce n'est pas un fragment compilable, nous avons besoin de savoir quelle ligne rapporte le problème. Il n'est certainement pas immédiatement évident de voir comment le code affiché pourrait avoir sauvé NumberDict hors de portée puisqu'il est défini dans une portée {...} et que la seule référence affichée est dans la même portée. Q idiot: êtes-vous sûr que c'est le code qui a l'erreur? –

Répondre

1

Ce code est-il définitivement la cause de l'erreur? N'essayez-vous pas d'accéder à savedNumberDict ailleurs? Comme il est déclaré à l'intérieur de votre bloc if {}, il n'existe que dans le if {}, une fois que le code a quitté ce bloc, la variable cesse d'exister.

Questions connexes