Uma tentativa de imprimir o objeto ( po
comando) 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 module
no contexto da Árvore de Sintaxe Abstrata do LLVM?
Respostas:
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.
fonte
error: The AST context is in a fatal error state.
Tem o mesmo problema no xcode 7.3.1:
Mas você pode usar em
fr v managedObject
vez depo managedObject
.fonte
Eu recomendo verificar se você tem o
sinalizador definido em 'Outros sinalizadores Swift' para o esquema que você está usando para depurar. Tive problemas semelhantes quando o excluí acidentalmente.
fonte
A limpeza do meu projeto e a exclusão
DerivedData
funcionaram para mim.fonte
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).
fonte