2010-01-11 4 views
0

Я получил сообщение об ошибке, которое указывает, что «savedNumberDict» - Out Of Scope. Я не совсем уверен, где искать решение. Какие-либо предложения? Код ниже, который я использую. Благодарю.Что означает Out Of Scope?

- (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

Поскольку это не компилятивный фрагмент, нам нужно знать, какая строка сообщает о пробке. Разумеется, не сразу видно, как показанный код мог бы сохранитьNumberDict вне области действия, поскольку он определен внутри области {...}, и единственная ссылка на него показана внутри той же области. Глубокое время Q: вы уверены, что это код с ошибкой? –

ответ

1

Является ли эта часть кода определенно корнем ошибки? Вы не пытаетесь получить доступ к сохраненному номеру в другом месте? Поскольку он объявлен внутри блока if {}, он существует только в if {}, как только код завершает блокировку переменной, перестает существовать.