Objekt ('po') im xcode6 beta 6 osx swift-Projekt kann nicht gedruckt werden: (Fehler beim automatischen Import: Modul '__ObjC' konnte nicht aus dem AST-Kontext abgerufen werden)


87

Ein Versuch, ein Objekt ( poBefehl) im xcode 6 beta 6 OSX Swift-Projekt zu drucken, führt zu folgender Fehlermeldung:

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

In diesem Fall ist das betreffende Objekt eine Instanz von NSManagedObject.

Irgendwelche Ratschläge, wie Sie den automatischen Import beim Einstieg __ObjC modulein den LLVM Abstract Syntax Tree-Kontext unterstützen können?


Ich habe das gleiche Problem, kann mich nicht einmal in einem viewController positionieren. Ich habe keine Ahnung, woher das kommt oder wie ich es lösen soll
BObereder

1
Ich habe immer noch das gleiche Problem in Beta 7.
Weiran

2
benutze print anstelle von po
ant_one

2
Haben Sie anstelle der Verwendung von expression versucht, die Frame-Variable manageObject zu verwenden ?
Vladof81

5
Rahmenvariable 'funktioniert' (ebenso die Abkürzung fr v ). In meinem Fall ist mein ' manageObject JSON in einem Wörterbuch über AFNetworking. Ich würde gerne im Wörterbuch so etwas wie manageObject ['key'] sehen . Das funktioniert nicht mit fr v .
Zak J

Antworten:


24

Ab Xcode 6.1 funktioniert der zweite Versuch, wenn Sie den Befehl po zweimal versuchen. Der erste Befehl po schlägt immer für jede neue Debugging-Sitzung fehl, aber nachfolgende Aufrufe funktionieren.



7
Es funktioniert nicht mehr für Xcode 7 ... immer noch der gleiche Absturz
Bartłomiej Semańczyk

4
Beim zweiten Versuch error: The AST context is in a fatal error state.
bekomme

7

Haben Sie das gleiche Problem in 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'

Aber Sie können fr v managedObjectanstelle von verwenden po managedObject.


3

Ich würde empfehlen, noch einmal zu überprüfen, ob Sie die haben

-D DEBUG

Flag unter "Andere schnelle Flags" für das Schema, das Sie zum Debuggen verwenden. Ich hatte ähnliche Probleme, als ich es versehentlich gelöscht hatte.


1

Ein Reinigen meines Projekts und Löschen DerivedDatahat bei mir funktioniert.


1

Ich habe eine ähnliche Fehlermeldung mit einem Apple-Techniker auf der WWDC2017 besprochen. Es scheint, dass dieses Problem viele Ursachen haben kann, und ich bin mir bewusst, dass mein Problem etwas anders ist als das oben beschriebene.

Mein Team hat wochenlang versucht, dies herauszufinden, und es war schließlich ein Fehler in Apples Compiler, den wir selbst niemals hätten herausfinden können. Es hat auch eine sehr einfache Problemumgehung.

Ich poste das Update nur hier, um die Wahrscheinlichkeit zu maximieren, dass jemand anderes nach dieser verwirrenden Fehlermeldung sucht und diese Antwort findet.

Hier ist es also. In unserem Fall hatten wir ein Objective-C-Projekt mit einer Mischung aus Swift- und Objective-C-Frameworks. Dieser Fix kann in etwas anderen Kontexten angewendet werden. Probieren Sie ihn einfach aus.

Es gibt einen Fehler in der Art und Weise, wie die Kompilierungsflags aus den Frameworks und dem Projekt aggregiert werden, und das "pure Objective-C" -Projekt "aktiviert" es.

Lösung: Fügen Sie Ihrem Objective-C-Projekt eine einzelne, leere Swift-Datei ("Whatever.swift" oder was auch immer) hinzu, sodass diese nicht mehr als reine Objective-C-Datei gilt (new-> file-> Swift-Datei, nicht Erstellen Sie den Bridging-Header. Die Datei enthält nur den Import von Foundation.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.