if语句的Obj-C语法错误...为什么?

时间:2009-05-10 11:46:20

标签: iphone objective-c

真实的新手来到Objective C和Cocoa。

我有'if statement'

if (cardCount = 2)
   UIImage *image = [UIImage imageNamed: @"Card 2.png"];

这给了我“错误:'*'令牌之前的语法错误”

为什么呢? UIImage系列本身运行良好。

我很欣赏指出我做错了什么。

由于 保罗

1 个答案:

答案 0 :(得分:14)

首先,条件应该是cardCount == 2,但这不是错误的原因。问题是,变量声明和初始化在语法语法中不算作语句。这是一个宣言。您不能声明ifwhile等的正文(顺便说一下,块被视为一个声明,可能包含声明,因此这是一个声明不同的事)。毕竟,没有任何用处,因为它会立即超出范围,因此不被允许。

UIImage *image;
if (cardCount == 2)
   image = [UIImage imageNamed: @"Card 2.png"];

如果你只需要在if语句中使用该变量(我怀疑这是你想要的):

if (cardCount == 2) {
   UIImage* image = [UIImage imageNamed: @"Card 2.png"];
   // code to use `image`
}