incapaz de imprimir o objeto ('po') no projeto xcode6 beta 6 osx swift: (Erro na importação automática: falha ao obter o módulo '__ObjC' do contexto AST)

87

Uma tentativa de imprimir o objeto ( pocomando) no projeto xcode 6 beta 6 OSX Swift resulta nesta mensagem de erro:

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

Neste caso, o objeto em questão é uma instância de NSManagedObject.

Algum conselho sobre como ajudar a importação automática para entrar __ObjC moduleno contexto da Árvore de Sintaxe Abstrata do LLVM?

Maxim Volgin
fonte
Eu tenho o mesmo problema, não consigo nem me colocar em um viewController. Não tenho ideia de onde isso veio ou como resolvê-lo
BObereder
1
Eu ainda tenho o mesmo problema no beta 7 também.
Weiran
2
use imprimir em vez de po
ant_one
2
Em vez de usar expressão, você tentou a variável de quadro managedObject ?
vladof81
5
a variável de quadro 'funciona' (o mesmo acontece com a abreviatura fr v ). No meu caso, meu ' manageObject é JSON em um dicionário via AFNetworking. Eu gostaria de ver no dicionário algo como managedObject ['key'] . Isso não funciona com fr v .
Zak J,

Respostas:

24

A partir do Xcode 6.1, se você tentar o comando po duas vezes, ele funcionará na segunda tentativa. O primeiro comando po sempre falhará para cada nova sessão de depuração, mas as chamadas subsequentes funcionam.

Robert Wagstaff
fonte
mesmo aqui, ele travou
user1366265
7
Não funciona mais para o Xcode 7 ... continua a mesma falha
Bartłomiej Semańczyk
4
Na segunda tentativa, estou obtendo:error: The AST context is in a fatal error state.
yujean
7

Tem o mesmo problema no 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'

Mas você pode usar em fr v managedObjectvez de po managedObject.

Alexander Danilov
fonte
3

Eu recomendo verificar se você tem o

-D DEBUG

sinalizador definido em 'Outros sinalizadores Swift' para o esquema que você está usando para depurar. Tive problemas semelhantes quando o excluí acidentalmente.

gemmakbarlow
fonte
1

A limpeza do meu projeto e a exclusão DerivedDatafuncionaram para mim.

Nico
fonte
1

Discuti uma mensagem de erro semelhante com um engenheiro da Apple no WWDC2017. Parece que esse problema pode ter várias causas, e estou ciente de que o meu é um pouco diferente do descrito acima.

Minha equipe passou semanas tentando descobrir isso, e acabou sendo um bug no compilador da Apple, que nunca poderíamos ter descoberto sozinhos. Além disso, tem uma solução alternativa MUITO fácil.

Então, sou apenas eu postando a correção aqui, a fim de maximizar a probabilidade de que outra pessoa faça uma pesquisa por essa mensagem de erro confusa e encontre a resposta.

Então aqui está. Em nosso caso, tínhamos um projeto Objective-C usando uma mistura de frameworks Swift e Objective-C. Esta correção pode ser aplicada em contextos ligeiramente diferentes, apenas tente.

Acontece que há um bug na maneira como os sinalizadores de compilação são agregados a partir dos frameworks e do projeto, e o projeto "puro Objective-C" o "ativa".

Solução: adicione um único arquivo Swift vazio ("Whatever.swift" ou qualquer outro) em seu projeto Objective-C, tornando-o não-puro-objetivo-c mais (novo-> arquivo-> arquivo Swift, não crie o cabeçalho de ponte. O arquivo conterá apenas a importação de Foundation).

Fredericouimet
fonte