尝试po
在xcode 6 beta 6 OSX Swift项目中打印对象(命令)会导致此错误消息:
(lldb) po managedObject
error: Error in auto-import:
failed to get module '__ObjC' from AST context
在这种情况下,所讨论的对象是的实例NSManagedObject
。
关于如何帮助自动导入__ObjC module
进入LLVM抽象语法树上下文的任何建议?
尝试po
在xcode 6 beta 6 OSX Swift项目中打印对象(命令)会导致此错误消息:
(lldb) po managedObject
error: Error in auto-import:
failed to get module '__ObjC' from AST context
在这种情况下,所讨论的对象是的实例NSManagedObject
。
关于如何帮助自动导入__ObjC module
进入LLVM抽象语法树上下文的任何建议?
Answers:
从Xcode 6.1开始,如果您两次尝试po命令,它将在第二次尝试时起作用。对于每个新的调试会话,第一个po命令将始终失败,但是后续调用可以工作。
error: The AST context is in a fatal error state.
在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
。
我建议您仔细检查一下您是否拥有
-D调试
用于调试的方案在“其他Swift标志”下设置的标志。当我不小心删除它时,我遇到了类似的问题。
我在WWDC2017上与Apple工程师讨论了类似的错误消息。看来这个问题可能有很多原因,而且我知道我的情况与上述情况略有不同。
我的团队花了数周的时间试图弄清楚这一点,但最终导致它成为Apple编译器上的一个错误,而我们自己是永远无法找到的。另外,它有一个非常简单的解决方法。
因此,这只是我在此处发布此修复程序,以最大程度地使其他人搜索此令人困惑的错误消息并找到答案的可能性。
所以,就在这里。在我们的案例中,我们有一个使用Swift和Objective-C框架的Objective-C项目。此修复程序可能适用于稍有不同的上下文,请尝试一下。
从框架和项目中汇总编译标志的方式恰好有一个错误,“纯Objective-C”项目“激活”了它。
解决方案:在您的Objective-C项目中添加一个空的Swift文件(“ Whatever.swift”或其他内容),使其不再是非纯客观的c(new-> file-> Swift file创建桥接头文件(该文件将仅包含Foundation的导入)。