impossibile stampare l'oggetto ('po') nel progetto xcode6 beta 6 osx swift: (Errore nell'importazione automatica: impossibile ottenere il modulo '__ObjC' dal contesto AST)


87

Un tentativo di stampare un oggetto ( pocomando) nel progetto xcode 6 beta 6 OSX Swift restituisce questo messaggio di errore:

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

In questo caso l'oggetto in questione è un'istanza di NSManagedObject.

Qualche consiglio su come aiutare l'importazione automatica per entrare __ObjC modulenel contesto LLVM Abstract Syntax Tree?


Ho lo stesso problema, non riesco nemmeno a posizionarmi in un viewController. Non ho idea da dove provenga o come risolverlo
BObereder

1
Ho ancora lo stesso problema anche nella beta 7.
weiran

2
usa print invece di po
ant_one

2
Invece di usare l'espressione, hai provato la variabile frame managedObject ?
vladof81

5
la variabile frame "funziona" (così come l'abbreviazione fr v ). Nel mio caso, il mio ' manageObject è JSON in un dizionario tramite AFNetworking. Vorrei vedere nel dizionario qualcosa come managedObject ['key'] . Questo non funziona con fr v .
Zak J

Risposte:


24

A partire da Xcode 6.1 se provi il comando po due volte, funzionerà al secondo tentativo. Il primo comando po fallirà sempre per ogni nuova sessione di debug ma le chiamate successive funzionano.


lo stesso qui, si è bloccato
user1366265

7
Non funziona più per Xcode 7 ... sempre lo stesso incidente
Bartłomiej Semańczyk

4
Al secondo tentativo, ottengo:error: The AST context is in a fatal error state.
yujean

7

Hanno lo stesso problema 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'

Ma puoi usare fr v managedObjectinvece di po managedObject.


3

Ti consiglio di ricontrollare di avere il file

MrGreen DEBUG

flag impostato in 'Other Swift Flags' per lo schema che stai utilizzando per il debug. Ho riscontrato problemi simili quando l'ho cancellato accidentalmente.


1

Una pulizia del mio progetto e l'eliminazione hanno DerivedDatafunzionato per me.


1

Ho discusso un messaggio di errore simile con un ingegnere Apple al WWDC2017. Sembra che questo problema possa avere molte cause e sono consapevole che il mio è leggermente diverso da quello descritto sopra.

Il mio team ha trascorso settimane a cercare di capirlo, e alla fine si è trattato di un bug nel compilatore Apple, che non avremmo mai potuto capire da soli. Inoltre, ha una soluzione molto semplice.

Quindi, sono solo io a pubblicare la correzione qui, al fine di massimizzare la probabilità che qualcun altro cerchi questo messaggio di errore confuso e trovi questa risposta.

Quindi, eccolo qui. Nel nostro caso, avevamo un progetto Objective-C che utilizzava un mix di framework Swift e Objective-C. Questa correzione potrebbe essere applicata in contesti leggermente diversi, provala.

Sembra esserci un bug nel modo in cui i flag di compilazione vengono aggregati dai framework e dal progetto, e il progetto "puro Objective-C" "li attiva".

Soluzione: aggiungi un singolo file Swift vuoto ("Qualunque cosa.swift" o qualsiasi altra cosa) nel tuo progetto Objective-C, rendendolo non più puro-oggettivo-c (nuovo-> file-> file Swift, non creare l'intestazione di bridging. Il file conterrà solo l'importazione di Foundation).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.