2

我正在尝试编译一个 Xcode 项目,但我收到了一堆不需要的错误,比如这个

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/i PhoneSimulator6.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:13:1: error: expected unqualified-id

该项目工作正常,但是当我尝试在我的应用程序委托中包含此文件“iRate.h”时,一切都出错了。我试图包含 iRate 的应用程序委托类是用 c++(cpp 文件)编写的。我不知道您可能还需要什么其他信息,但这几乎概括了一切

这是另一个错误消息,希望这会有所帮助

  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator6.1.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:418:50: error: unknown type name 'NSString'
  FOUNDATION_EXPORT Protocol *NSProtocolFromString(NSString *namestr) NS_AVAILABLE(10_5, 2_0);
                                             ^
                                     ^
4

3 回答 3

2

如果您将 C++ 与 Objective-C 混合使用,则需要为您的文件指定 .mm 文件扩展名。

于 2013-07-22T14:43:13.183 回答
0

检查所有头文件和代码文件的开头和结尾。从所有标题的第一行开始。我的意思是第 1 行,通常是你从不看的评论。您可能会在注释以//开头之前发现其中一个带有杂散字符左右。

d// Copyright ...

(在我的情况下,它是广告,因为我习惯将左中指放在 d 上,而我什么都不做,只是在思考左右。)

不幸的是,您无法分辨是哪个头文件导致了它。在某些实现或某些接口端,它很可能是一个流浪字符。

@end
d

祝你好运!

于 2013-07-22T14:58:48.143 回答
0

如果您在目标 c 中使用 c++ 文件,您需要将目标 c 文件扩展名为 .mm (obj-c++) 而不仅仅是 .m (obj-c),您尝试过吗?

于 2013-07-22T14:43:22.183 回答