我有当前的代码:
if ([fetchedObjects count] == 0){
Timetable *info = nil;
} else {
Timetable *info = [fetchedObjects objectAtIndex:0];
}
// Return Data
return info;
在我的一个课程中的方法内部。这段代码应该运行,但xcode给出了错误:
Use of undeclared identifier 'info'
返回信息和
Unused variable 'info'
表格时间表*信息部分。
我不知道为什么会发生这种情况,如果我因此尝试运行该应用程序确实会崩溃。如果我在没有像这样的if语句的情况下设置timtable,它将起作用:
Timetable *info = [fetchedObjects objectAtIndex:0];
有人能告诉我我做错了什么吗?感谢。
答案 0 :(得分:3)
您要在info
或if
内的两个不同位置声明else
个变量。在块外不可见info
。 (这是基本的C语言。)
这看起来好一点:
Timetable* info = nil;
if ([fetchedObjects count] > 0)
{
info = [fetchedObjects objectAtIndex:0];
}
return info;
答案 1 :(得分:2)
变量Timetable *info
的范围仅在if(){}else{}
块内。如果你想稍后再返回它,你需要在if语句之外声明它。
答案 2 :(得分:0)
info
的范围仅 if语句。在它之外声明它以便可以在它之外看到它。
答案 3 :(得分:0)
因为您在if..else ..块中的本地范围内定义了信息。
Timetable *info = nil;
if ([fetchedObjects count] != 0){
info = [fetchedObjects objectAtIndex:0];
}
return info;
改为