xcode6 beta 6 osx swiftプロジェクトでオブジェクト( 'po')を印刷できません:(自動インポートのエラー:ASTコンテキストからモジュール '__ObjC'を取得できませんでした)


87

poxcode 6 beta 6 OSX Swiftプロジェクトでオブジェクト(コマンド)を印刷しようとすると、次のエラーメッセージが表示されます。

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

この場合、問題のオブジェクトはのインスタンスですNSManagedObject

__ObjC moduleLLVM抽象構文ツリーコンテキストに入る際に自動インポートを支援する方法に関するアドバイスはありますか?


私は同じ問題を抱えており、viewControllerで自分自身をpoすることさえできません。これがどこから来ているのか、それをどのように解決するのかわかりません
BObereder 2014

1
ベータ7でも同じ問題が発生します。
weiran 2014

2
poの代わりにprintを使用する
ant_one 2014

2
式を使用する代わりに、フレーム変数managedObjectを試しましたか?
vladof81 2014

5
フレーム変数'は機能します'(略語fr vも機能します)。私の場合、manageObjectはAFNetworkingを介した辞書のJSONです。ManagedObject ['key']のような辞書で見たいのですが。それは動作しませんFR V
Zak J

回答:


24

Xcode 6.1以降、poコマンドを2回試行すると、2回目の試行でも機能します。最初のpoコマンドは、新しいデバッグセッションごとに常に失敗しますが、後続の呼び出しは機能します。


ここでも同じですが、クラッシュしました
user1366265 2015年

7
これは、Xcodeの7のためにもう動作しません...まだ同じクラッシュ
パルトロミエSemańczyk

4
第二の試みで、私は取得しています:error: The AST context is in a fatal error state.
yujean

7

xcode7.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プロジェクトに1つの空のSwiftファイル( "Whatever.swift"など)を追加して、それを非純粋なObjective-cにします(new-> file-> Swiftファイル。ブリッジヘッダーを作成します。ファイルにはFoundationのインポートのみが含まれます)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.