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


87

尝试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抽象语法树上下文的任何建议?


我有同样的问题,甚至无法在viewController中自拍。我不知道这是哪里来的或如何解决的
BObereder 2014年

1
我在Beta 7中也有同样的问题。
威兰2014年

2
使用print代替po
ant_one 2014年

2
您是否尝试使用框架变量managedObject而不是使用表达式?
vladof81 2014年

5
框架变量'works'(缩写fr v)。就我而言,我的' manageObject是通过AFNetworking在字典中的JSON。我想在字典中看到诸如managedObject ['key']之类的东西。这不适用于fr v
Zak J

Answers:


24

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


同样在这里,它崩溃了
user1366265 2015年

7
它不会再对Xcode的7工作...仍然是相同的碰撞
巴特洛梅耶Semańczyk

4
在第二次尝试中,我得到:error: The AST context is in a fatal error state.
yujean

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


3

我建议您仔细检查一下您是否拥有

-D调试

用于调试的方案在“其他Swift标志”下设置的标志。当我不小心删除它时,我遇到了类似的问题。


1

清理我的项目并删除DerivedData对我有用。


1

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

我的团队花了数周的时间试图弄清楚这一点,但最终导致它成为Apple编译器上的一个错误,而我们自己是永远无法找到的。另外,它有一个非常简单的解决方法。

因此,这只是我在此处发布此修复程序,以最大程度地使其他人搜索此令人困惑的错误消息并找到答案的可能性。

所以,就在这里。在我们的案例中,我们有一个使用Swift和Objective-C框架的Objective-C项目。此修复程序可能适用于稍有不同的上下文,请尝试一下。

从框架和项目中汇总编译标志的方式恰好有一个错误,“纯Objective-C”项目“激活”了它。

解决方案:在您的Objective-C项目中添加一个空的Swift文件(“ Whatever.swift”或其他内容),使其不再是非纯客观的c(new-> file-> Swift file创建桥接头文件(该文件将仅包含Foundation的导入)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.