【问题标题】:Xcode 6 - Unknown type name 'NSString' / Expected identifier or '('Xcode 6 - 未知类型名称“NSString”/预期标识符或“(”
【发布时间】:2014-11-18 04:03:36
【问题描述】:

当我在 Xcode 6 中运行我的项目时,我遇到了许多奇怪的错误。

Parse Issue - Unknown type name 'NSString'
Format argument not an NSString
Could not build module Foundation
Could not build module QuartzCore

所有这些错误都发生在 Apple 的头文件中,例如:CAMediaTiming.h、NSObjCRuntime.h、NSZone.h、NSObject.h、CALayer.h 等。

不幸的是,这里的答案:ios - Parse Issues in NSObjCRuntime, NSZone, and NSObject 对我不起作用。

你建议我如何修复这些错误?

【问题讨论】:

  • 我也有类似的问题:stackoverflow.com/questions/24351496/…
  • 您最终能否让您的项目使用 Xcode 6 工作?
  • 是的。该项目再次运行良好。似乎只有 Xcode 在某种程度上被损坏了。
  • 我曾经为 NSString 遇到过这个令人讨厌的错误。尝试在您遇到错误的文件中添加#import 。我知道它含糊不清,但它确实解决了我的问题。
  • 这对我有用#import

标签: ios objective-c xcode ios8 xcode6


【解决方案1】:

问题是我的项目中有一些.c 文件,显然Xcode 6 不喜欢.c 文件。

我将.c 文件的扩展名更改为.m,Xcode 6 又开心了!

【讨论】:

  • 使用 .mm 代替 .m 允许 cpp 和 obj-c。
  • 非常感谢..它对我有帮助..!
  • 谢谢。很难想象为什么会发生这种情况。 Objective c 和普通的 .c 文件应该兼容,因为 Objective C 应该是 C 的超集,至少上次我读过一本关于它起源的书。
  • 谢谢,它为我节省了一整天的时间。
【解决方案2】:

我使用Xcode 8.3.3,我也遇到了这个问题,我通过选择文件并在Xcode右侧面板中的Identity and Type部分选择Type to Objective-C++来解决这个问题。

【讨论】:

    【解决方案3】:

    如果您的项目中有一个 PrefixHeader 文件导入 Objective-C 代码以及一些纯 C 文件,您可能会收到此错误,因为 C 文件尝试导入 Objective-C。

    要修复,请像这样包装你的 Objective-C 导入:

    #ifdef __OBJC__
    #import <OOObjectiveCClass.h>
    #endif
    

    【讨论】:

    • 这就是我要找的答案! +1!
    • 非常感谢,它为我节省了很多精力。
    • Superbbb... 100% 正确答案
    【解决方案4】:

    您也可以尝试删除 FacebookSDK 文件夹中的 Samples 文件夹(然后在 Xcode 中删除对它的引用。

    【讨论】:

      【解决方案5】:

      查看 Prefix Header 文件路径是否正确放置在 Build Settings 选项卡下。请参阅以下链接中的完整答案。

      Check this post

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-28
        • 2013-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-14
        • 2013-06-26
        相关资源
        最近更新 更多