"预期的方法体"错误

Raf*_*ira 11 xcode objective-c

我让我的应用程序工作正常,然后没有做任何事情,我无处不在,我有2个错误appDelegate.h.一说这个:

Objective-C方法的预期选择器

另一个说:

预期的方法体

我不知道为什么会这样,我有其他项目与完全相同的应用程序委托,他们都工作得很好.

这是我的appDelegate.h:

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate> // I get the errors here

@property (strong, nonatomic) UITabBarController *tbc; 
@property(strong, nonatomic) UIWindow *window;

@end
Run Code Online (Sandbox Code Playgroud)

小智 23

我有同样的问题.最后我发现在我的main.m中我不小心在文件的开头添加了一个" - "字符.

删除角色解决了问题.


rob*_*off 12

我经常发现像这样的神秘错误发生是因为我不小心在我的其他源文件中输入了一个杂散字符 - 在其他一个头文件的末尾,或者在文件的顶部.m.

查看.mXcode尝试编译的文件的顶部.检查它是否有杂散字符.如果找不到,请查看之前导入的文件AppDelegate.h.检查其他头文件末尾的杂散字符.如果您有导入的头文件AppDelegate.h,您可能还需要检查它们.(实际上没有.h必要导入任何其他文件AppDelegate.h.)

  • 在评论开始之前,在文件顶部有一个+!很难找到并且不得不用cmd + z回去,但我终于找到了它! (2认同)

Nic*_*ood 3

尝试关闭 Xcode,然后重新打开并进行干净的构建。

如果这不能解决问题,则可能是您的头文件之一中有循环引用。

当 foo.h #imports "bar.h" 和 bar.h #imports "foo.h" (或者有时它是由三个或更多头文件组成的链,相互导入成一个圆圈)时,可能会发生这种情况,并导致虚假错误就像你所看到的那样。

解决方案是尝试避免在 .h 文件中导入标头,而是在 .h 文件中对外部类使用 @class 引用,并将 #imports 放在 .m 文件中。