尝试在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
的任何建议吗?
答案 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的导入。