预期的表达错误 - 目标c

时间:2013-05-21 11:52:50

标签: objective-c

我正在做本书的教程:Neil Smyth撰写的“Objective-C 2.0 Essentials第3版”。我已经反复尝试过,但即使书籍版本声称要运行,仍然会出现相同的“预期表达式”错误。我检查了太多次,我的版本与书籍完全相同。请有人帮助我。代码如下:

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[]) {
    @autoreleasepool {
        int x;
        int j = 54321;

        for (x = 0; x < 10; x++) {

        }

        int j = x + 10;
        NSLog (@"Variable j in for loop is %i", j);

        NSLog (@"Variable j outside for loop is %i", j); /* I GET AN ERROR STATING " EXPECTED EXPRESSION HERE*/

    }
    return 0;
}

2 个答案:

答案 0 :(得分:4)

该行

    NSLog (@"Variable j outside for loop is %i", j);

在Tab和“NSLog”之间包含许多不可见字符(UTF-8序列EF BF BC = OBJECT REPLACEMENT CHARACTER)。

删除并重写该行应该有所帮助。

OP的代码在hexa编辑器中打开: enter image description here

答案 1 :(得分:1)

更好地格式化代码;如果你在代码中放错了地方}变得很明显:

 #import <Foundation/Foundation.h>
 int main (int argc, const char * argv[]) {
     @autoreleasepool {
         int x;
         int j = 54321;
         for (x = 0; x < 10; x++) {
             int j = x + 10;
             NSLog (@"Variable j in for loop is %i", j);
         }
         NSLog (@"Variable j outside for loop is %i", j);
     }

     return 0;
}

编辑 @MartinR指出的隐形字符也是一个问题(我没注意到)。所以你的代码中有两个错误。