预期标识符或'('在iOS中

时间:2012-12-22 14:03:51

标签: objective-c ios

我正在尝试使用Apple的iOS核心数据教程,但无法解决此错误。

我试图通过阅读这里的所有问题来解决这个问题,但却无处可去 -

有什么想法吗?

#import <UIKit/UIKit.h>

UINavigationController *navigationController;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, retain) UINavigationController *navigationController;
 // expected identifier or '(' on the line above

@end

3 个答案:

答案 0 :(得分:5)

更好的解决方案 - 更改文本首选项以将ctrl-return绑定到实际换行符。

我写了blog post with screenshots


@jlehr说的是什么,但有步骤。

  1. 转到声明navigationController

  2. 的行的末尾
  3. 点击 ctrl-a

  4. 如果光标移到声明window的行的开头,那么该行的换行符就是假的。

    快速修复;将光标放在声明window的行的开头,点击向下箭头,然后 delete ,然后 return

    一直发生在我身上,因为我的emacs根深蒂固,因此,点击 ctrl-return 会插入错误类型的换行符,导致编译器停止。提交一个错误,请将它标记为欺骗,但是欺骗表示这会使用户感到沮丧的频率。

答案 1 :(得分:2)

删除此语句或更改变量名称:

UINavigationController *navigationController;

再试一次。

您在同一个班级中有两次相同的变量名称。一个作为财产,一个作为全球。

编辑:

或者你的意图是用作ivar,所以你应该使用as:

@interface AppDelegate : UIResponder <UIApplicationDelegate>{
    UINavigationController *navigationController;
}

@property (strong, nonatomic) UIWindow *window;
@property (nonatomic, retain) UINavigationController *navigationController;

@end

答案 2 :(得分:2)

您发布的代码在我的机器上干净地编译,因此Xcode项目中的版本很可能包含一个杂散的非打印字符,可能在您声明window属性的行上。作为一个快速实验,请尝试评论该行,看看问题是否存在。

一旦您隔离了包含有问题字符的行,请将其注释掉,然后在新行上重新键入文本。完成后,您可以删除已注释的代码。