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

2 iphone objective-c

真实新手来到Objective C和Cocoa.

我有这个'如果声明'

if (cardCount = 2)
   UIImage *image = [UIImage imageNamed: @"Card 2.png"];
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢保罗

Meh*_*ari 14

首先,条件应该读取,cardCount == 2但这不是该错误的原因.问题是,变量声明和初始化不算作语言语法中的语句.这是一个宣言.你不能有一个声明为主体的if,while等等(顺便说一下,一个块被认为是一个声明,这可能包含声明,所以这是一个不同的东西).毕竟,它没有用,因为它会立即超出范围,所以它是不被允许的.

UIImage *image;
if (cardCount == 2)
   image = [UIImage imageNamed: @"Card 2.png"];
Run Code Online (Sandbox Code Playgroud)

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

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