无法在xcode6 beta 6 osx swift项目中打印对象('po'):(自动导入时出错:无法从AST上下文获取模块'__ObjC')

时间:2014-08-27 06:37:35

标签: macos swift xcode6

尝试在xcode 6 beta 6 OSX Swift项目中打印对象(po命令)会导致出现此错误消息:

(lldb) po managedObject
error: Error in auto-import:
failed to get module '__ObjC' from AST context

在这种情况下,有问题的对象是NSManagedObject的实例。

有关如何帮助自动导入以获取LLVM抽象语法树上下文中的__ObjC module的任何建议吗?

5 个答案:

答案 0 :(得分:24)

从Xcode 6.1开始,如果您尝试两次po命令,它将在第二次尝试时起作用。对于每个新的调试会话,第一个po命令总是会失败,但后续调用会起作用。

答案 1 :(得分:7)

在xcode 7.3.1中遇到同样的问题:

error: Error in auto-import:
failed to get module 'Touch' from AST context:
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h"
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h:17:10: error: 'libxml/xmlversion.h' file not found
#include <libxml/xmlversion.h>
         ^
could not build Objective-C module 'LibXML2'

但您可以使用fr v managedObject代替po managedObject

答案 2 :(得分:3)

我建议仔细检查你有

  

-D DEBUG

对于您用于调试的方案,在标志。当我意外删除它时,我遇到了类似的问题。

答案 3 :(得分:1)

清理我的项目并删除DerivedData为我工作。

答案 4 :(得分:1)

我在WWDC2017上与Apple工程师讨论过类似的错误消息。似乎这个问题可能有很多原因,我知道我的情况与上述情况略有不同。

我的团队花了数周的时间试图解决这个问题,结果却成了Apple编译器的一个错误,我们自己也想不到这个错误。此外,它有一个非常简单的解决方法。

所以,这只是我在这里发布修复程序,以便最大限度地提高其他人搜索这个令人困惑的错误消息的可能性,并找到答案。

所以,在这里。在我们的例子中,我们有一个使用Swift和Objective-C框架的Objective-C项目。此修复可能适用于略有不同的上下文,只需尝试即可。

编译标志从框架和项目以及纯粹的Objective-C&#34;聚合的方式发生了错误。项目&#34;激活&#34;它。

解决方案:在Objective-C项目中添加一个单独的空Swift文件(&#34; Whatever.swift&#34;或其他),使其不再是纯粹的Objective-c(new-&gt; file-&gt; Swift文件,不要创建桥接头。该文件只包含Foundation的导入。