超出范围是什么意思?
问题描述:
我收到一个错误,指示“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];
}
答
这段代码肯定是错误的根源吗?您是否尝试访问其他地方的savedNumberDict?由于它是在你的if块中声明的,它只存在于if {}内,一旦代码退出,块变量不再存在。
既然这不是一个可编译的片段,我们需要知道哪一行报告了probem。由于它是在{...}作用域内定义的,并且它显示的唯一引用位于相同作用域内,所以显示的代码如何将savedNumberDict从scope作为范围并不明显。傻Q时间:你确定这是有错误的代码? – 2010-01-11 15:56:21