【问题标题】:Reference to ' ' is ambigous error in XcodeXcode 中对“”的引用是模棱两可的错误
【发布时间】:2015-09-20 20:39:22
【问题描述】:

我正在使用 Xcode 中的自定义 iOS 框架项目。我收到很多错误,提到“对 '' 的引用不明确”。我附上了错误的屏幕截图。请帮我纠正这个问题。

【问题讨论】:

  • 您似乎忘记提及任何“;”或代码行中的“,”。或者我无法调试,这就是 if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 行看起来有问题的原因。
  • 单击错误旁边的披露(在左侧的错误导航器中)。使导航器足够宽,以便在您完成后显示完整的消息。发布这些消息的屏幕截图。
  • @robmayoff:是的,请查看屏幕截图
  • 实际上,当我在最新的 iOS 8 sdks 中构建它时,我没有收到任何错误。它在 sdks 6.1 和其他较低版本中显示问题。但我想在 sdks 6.1 本身中运行它

标签: objective-c xcode6 ios6.1 mobfox


【解决方案1】:

为 Jason 的回答添加更多信息。

错误消息让我认为您有两个相同库函数的声明。所有这些引用都来自 UIKit

这主要是由于头文件而发生的。如您所见,所有错误都表明它引用了枚举值。枚举值将始终位于 .h 文件中。通常参考标头(.h 文件)将出现在框架内。这是一个常见的错误,有时这些头文件会被任何第三方框架埋在我们代码中的某个地方。所以请检查您的第三方库。

我确实遇到过一次这个问题,在到处搜索之后我无法找到解决方案。唯一解决我的问题是

打开一个新项目并将我的文件导入该项目。实际上,我真的只花了不到 10 分钟的时间就转移到了一个新项目,我的 xcode 立刻就很开心。这绝对值得一试。

【讨论】:

  • 为什么这个错误和你的解决方案与命名空间有关?
【解决方案2】:

实际上,当我从 iOS SDK 6.1 切换到 7.1(或任何高于 6.1 的版本)时,此错误已清除

【讨论】:

  • 我有相同的 ios SDK。我导入 UIKit 和 CoreGraphicsframework 错误显示 CGRectMinXEdge 在 MMDrawer 类中不明确。我该怎么办?
【解决方案3】:

错误消息让我认为您有两个相同库函数的声明。所有这些参考都来自UIKit。检查以确保在您的项目中只引用了一个版本的 UIKit(检查框架),并确保您包含的任何库都与应用程序的其余部分链接相同的 UIKit 版本。

从这里修复的步骤:

  • 清理项目
  • 删除里面的所有内容 '~/Library/Developer/Xcode/DerivedData/ModuleCache/'(按钮 在管理器窗口内对我不起作用)
  • 再次清洁
  • 构建项目

从这里:Reference to 'X' is ambiguous

【讨论】:

    【解决方案4】:

    清理您的项目并重新构建。如果它不起作用,则创建一个新项目

    【讨论】:

      【解决方案5】:

      Enable Module (C and Objective-c)的值设为No

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-24
        • 1970-01-01
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 2015-08-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多