参考' X'很暧昧

时间:2014-08-19 08:06:10

标签: ios objective-c xcode5

在对我的项目进行多次更改后,我突然收到构建错误:

Reference to 'kCGImageAlphaPremultipliedLast' is ambiguous

Reference is ambiguous 当看到错误时,它向我显示它被引用了4次

enter image description here

有人可以告诉我这是怎么发生的,我怎么能弄清楚导致这种情况的原因?我没有明确地从CoreGraphics导入任何东西,我的Prefix文件只导入'Foundation.h'和一些自制的宏。然而,我导入了几个包含纯c代码的头文件,但它们都封装在这样的内容中:

#ifndef __MYCCODE_H
#define __MYCCODE_H
// imports here
// c code here
#endif

这在使用LLVM 5.1的xcode 5中发生

编辑:这似乎是这个项目的另一个问题。在评论这行代码后,我得到另一个错误:

Malformed or corrupted AST file: 'Unable to load module "/Users/xxx/Library/Developer/Xcode/DerivedData/ModuleCache/1NHZ5MC2OSMJV/CoreImage.pcm": module file out of date'

删除模块并再次添加它没有帮助。删除派生数据也没有帮助。返回工作提交时也会出现此错误

8 个答案:

答案 0 :(得分:17)

确定创建一个新项目并将所有内容复制到此项目后,构建成功但是我再次多次出现“格式错误或损坏的AST文件”错误,但可以通过以下方式解决:

  • 清理项目
  • 删除'〜/ Library / Developer / Xcode / DerivedData / ModuleCache /'内的所有内容(组织者窗口内的按钮对我不起作用)
  • 再次清洁
  • 构建项目

之后它工作得很好,除了我不时要做这个修复

我也对旧项目做了一个差异,似乎很多框架和其他旧东西都在测试中遇到了问题所以如果你有这个检查项目设置文件的旧东西。

我认为xcode和我有一天可以成为朋友。猜不是......

答案 1 :(得分:13)

当我导入两次头文件时,我遇到了这个问题。删除其中一个后,问题就消失了。

答案 2 :(得分:13)

这可能是你这样导入的:

  

#import“xxxx.h”

我解决了这个问题:

  

#import< XXXX / xxxx.h>

答案 3 :(得分:9)

对于任何仍在努力解决问题的人:在我的案例中,非提议的解决方案都有效。我正在使用Carthage编译我的所有框架,并且每当我导入框架的头部时,我在主项目中都会出现这些错误,该框架使用的是我的主项目所使用的框架。最终解决它的是在主项目上禁用“模块”。 enter image description here

答案 4 :(得分:1)

删除use_frameworks!从pod文件修复我的模糊问题。

答案 5 :(得分:1)

这里的一些解决方案很好但是use_frameworks!正是我现在所需要的,即使你让这个问题发生了。但看起来构建不喜欢当我使用框架和标题被引用两次像这样

#import "TSMessage.h"
#import "TSMessage+CSExtension.h"

但是当它像这样编译时问题会消失

#import "TSMessage+CSExtension.h"

答案 6 :(得分:0)

使用

#import "anyviewcontroller.h"

而不是任何模块

@import anymodule;

我正在使用LGSideMenuController,当我第一次集成它时,它运行良好,但我不知道为什么我会在一段时间后收到此错误。

所以我将模块@import LGSideMenuController;替换为头文件就像这样 #import "UIViewController+LGSideMenuController.h"

并且错误消失。

答案 7 :(得分:0)

我刚刚在构建报告中乱扔了同样的警告(但只在三角形下面)。最终对我有用的是确保每次使用:

#import <Module/Module.h> 
应用程序中的

被替换为:

@import Module;

现在所有那些恼人的警告都消失了!