2

我正在尝试遵循 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
4

3 回答 3

5

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

我写了一篇带有截图的博客文章


@jlehr 说了什么,但有步骤。

  1. 转到声明的行的末尾navigationController

  2. ctrl-a

如果光标移动到声明 的行的开头window,则该行的换行符是假的。

快速解决; 将光标置于声明行的开头window,点击down-arrow, then delete, then return

一直发生在我身上,因为我的 emacs 根深蒂固,因此,命中ctrl-return插入错误类型的换行符,导致编译器出错。请也提交一个错误,它会被标记为欺骗,但欺骗表明这让用户感到沮丧的频率。

于 2012-12-22T18:40:48.050 回答
2

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

UINavigationController *navigationController;

然后再试一次。

您在同一类中有两次相同的变量名。一个作为财产,一个作为全局。

编辑:

或者您的意图是用作 ivar,因此您应该使用 as :

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

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

@end
于 2012-12-22T14:16:00.923 回答
2

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

隔离包含问题字符的行后,将其注释掉并在新行上重新键入文本。完成该工作后,您可以删除注释的代码。

于 2012-12-22T17:19:39.067 回答