1

我正在做这本书的教程:Neil Smyth 的“Objective-C 2.0 Essentials 3rd edition”。我反复尝试过,但即使书籍版本声称可以运行,但仍然收到相同的“预期表达式”错误。我检查了太多次,我的版本和书上的完全一样。请,有人可以帮助我。下面的代码:

#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;
}
4

2 回答 2

4

线

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

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

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

OP的代码在六编辑器中打开: 在此处输入图像描述

于 2013-05-21T12:09:08.430 回答
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 指出的隐形字符也是一个问题(我没有注意到)。因此,您的代码中有两个错误。

于 2013-05-21T11:56:08.330 回答