我正在尝试使用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
答案 0 :(得分:5)
更好的解决方案 - 更改文本首选项以将ctrl-return绑定到实际换行符。
我写了blog post with screenshots。
@jlehr说的是什么,但有步骤。
转到声明navigationController
点击 ctrl-a
如果光标移到声明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
属性的行上。作为一个快速实验,请尝试评论该行,看看问题是否存在。
一旦您隔离了包含有问题字符的行,请将其注释掉,然后在新行上重新键入文本。完成后,您可以删除已注释的代码。