错误:使用#defined常量在线预期表达式

Phi*_*hil 3 macros compiler-errors objective-c

我这样做

if ([resourceCompletionReward objectAtIndex:experienceD] != 0) {
Run Code Online (Sandbox Code Playgroud)

但是Xcode给了我一个错误:

期待的表达

我定义experienceD

#define experienceD 0;
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Gab*_*lla 7

分号不应该在那里.

#define experienceD 0
Run Code Online (Sandbox Code Playgroud)

会编译得很好.

使用像这样的UPPER_CASE_NOTATION命名常量也是一个好习惯.

为了完整起见,我将补充说Apple建议(来自可可编码指南)

通常,不要使用#define预处理程序命令来创建常量.对于整数常量,使用枚举,对于浮点常量,使用const限定符

并且

如果常量与其他常量无关,则可以使用const创建整数常量; 否则,使用枚举

因此,在您的特定情况下,最好将常量定义为

static const int ExperienceD = 0;
Run Code Online (Sandbox Code Playgroud)