Objective-c不能使用IF语句

时间:2012-06-06 07:37:00

标签: objective-c

我有当前的代码:

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];

有人能告诉我我做错了什么吗?感谢。

4 个答案:

答案 0 :(得分:3)

您要在infoif内的两个不同位置声明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;

改为