impossible d'imprimer l'objet ('po') dans le projet xcode6 beta 6 osx swift: (Erreur lors de l'importation automatique: échec de l'obtention du module '__ObjC' du contexte AST)

87

Une tentative d'impression d'un objet ( pocommande) dans le projet xcode 6 beta 6 OSX Swift entraîne ce message d'erreur:

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

Dans ce cas, l'objet en question est une instance de NSManagedObject.

Des conseils sur la manière d'aider l'importation automatique dans le __ObjC modulecontexte de l'arborescence de syntaxe abstraite LLVM?

Maxim Volgin
la source
J'ai le même problème, je ne peux même pas me connecter dans un viewController. Je n'ai aucune idée d'où cela vient ou comment le résoudre
BObereder
1
J'ai toujours le même problème dans la version bêta 7.
weiran le
2
utiliser print au lieu de po
ant_one
2
Au lieu d'utiliser l'expression, avez-vous essayé la variable frame managedObject ?
vladof81
5
la variable frame «fonctionne» (ainsi que l'abréviation fr v ). Dans mon cas, mon ' manageObject est JSON dans un dictionnaire via AFNetworking. J'aimerais voir dans le dictionnaire quelque chose comme managedObject ['key'] . Cela ne fonctionne pas avec fr v .
Zak J

Réponses:

24

À partir de Xcode 6.1, si vous tentez deux fois la commande po, cela fonctionnera à la deuxième tentative. La première commande po échouera toujours pour chaque nouvelle session de débogage mais les appels suivants fonctionnent.

Robert Wagstaff
la source
même ici, il s'est écrasé
user1366265
7
Cela ne fonctionne plus pour Xcode 7 ... toujours le même crash
Bartłomiej Semańczyk
4
À la deuxième tentative, error: The AST context is in a fatal error state.
j'obtiens
7

Avoir le même problème dans 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'

Mais vous pouvez utiliser à la fr v managedObjectplace de po managedObject.

Alexandre Danilov
la source
3

Je vous recommande de vérifier que vous avez le

-D DEBUG

drapeau défini sous «Autres indicateurs Swift» pour le schéma que vous utilisez pour déboguer. J'ai rencontré des problèmes similaires lorsque je l'avais supprimé accidentellement.

gemmakbarlow
la source
1

Un nettoyage de mon projet et la suppression ont DerivedDatafonctionné pour moi.

Nico
la source
1

J'ai discuté d'un message d'erreur similaire avec un ingénieur Apple à WWDC2017. Il semble que ce problème puisse avoir de nombreuses causes, et je suis conscient que le mien est légèrement différent de celui décrit ci-dessus.

Mon équipe a passé des semaines à essayer de comprendre cela, et cela a fini par être un bogue sur le compilateur d'Apple, que nous n'aurions jamais pu découvrir par nous-mêmes. En outre, il a une solution de contournement TRÈS facile.

Donc, c'est juste moi qui publie le correctif ici, afin de maximiser la probabilité que quelqu'un d'autre fasse une recherche pour ce message d'erreur déroutant et trouve cette réponse.

Alors, voilà. Dans notre cas, nous avions un projet Objective-C utilisant un mélange de frameworks Swift et Objective-C. Ce correctif peut s'appliquer dans des contextes légèrement différents, essayez-le.

Il se trouve qu'il y a un bogue avec la façon dont les indicateurs de compilation sont agrégés à partir des frameworks et du projet, et le projet "pur Objective-C" "active".

Solution: ajoutez un seul fichier Swift vide ("Whatever.swift", ou autre) dans votre projet Objective-C, le rendant plus pur-objectif-c (nouveau-> fichier-> fichier Swift, ne créer l'en-tête de pontage. Le fichier ne contiendra que l'importation de Foundation).

fredericouimet
la source