超出范围是什么意思?

问题描述:

我收到一个错误,指示“savedNumberDict”超出了范围。我不太确定在哪里寻找解决方案。有什么建议么?代码低于我正在使用的。谢谢。超出范围是什么意思?

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

既然这不是一个可编译的片段,我们需要知道哪一行报告了probem。由于它是在{...}作用域内定义的,并且它显示的唯一引用位于相同作用域内,所以显示的代码如何将savedNumberDict从scope作为范围并不明显。傻Q时间:你确定这是有错误的代码? – 2010-01-11 15:56:21

这段代码肯定是错误的根源吗?您是否尝试访问其他地方的savedNumberDict?由于它是在你的if块中声明的,它只存在于if {}内,一旦代码退出,块变量不再存在。