nie można wydrukować obiektu („po”) w projekcie xcode6 beta 6 osx swift: (Błąd automatycznego importu: nie udało się pobrać modułu „__ObjC” z kontekstu AST)


87

Próba wydrukowania obiektu ( popolecenia) w projekcie xcode 6 beta 6 OSX Swift powoduje wyświetlenie tego komunikatu o błędzie:

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

W tym przypadku dany obiekt jest instancją NSManagedObject.

Jakieś porady, jak pomóc w automatycznym imporcie w __ObjC moduledostępie do kontekstu drzewa składni abstrakcyjnej LLVM?


Mam ten sam problem, nie mogę nawet po self w viewController. Nie mam pojęcia, skąd to się bierze ani jak to rozwiązać
BObereder

1
Nadal mam ten sam problem w wersji beta 7.
weiran

2
użyj print zamiast po
ant_one

2
Zamiast używać wyrażenia, czy spróbowałeś zmiennej ramki managedObject ?
vladof81,

5
zmienna ramki 'działa' (tak samo jak skrót fr v ). W moim przypadku my ' manageObject ' to JSON w słowniku za pośrednictwem AFNetworking. Chciałbym zobaczyć w słowniku coś takiego jak managedObject ['klucz'] . To nie działa z fr v .
Zak J

Odpowiedzi:


24

Począwszy od Xcode 6.1, jeśli spróbujesz dwukrotnie wykonać polecenie po, zadziała ono przy drugiej próbie. Pierwsze polecenie po zawsze kończy się niepowodzeniem przy każdej nowej sesji debugowania, ale kolejne wywołania działają.


to samo tutaj, to się
zawiesiło

7
To już nie działa dla Xcode 7 ... wciąż ta sama awaria
Bartłomiej Semańczyk

4
Przy drugiej próbie otrzymuję:error: The AST context is in a fatal error state.
yujean

7

Mają ten sam problem w 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'

Ale możesz użyć fr v managedObjectzamiast po managedObject.


3

Zalecam podwójne sprawdzenie, czy masz plik

-D DEBUG

flaga ustawiona w obszarze „Inne flagi Swift” dla schematu, którego używasz do debugowania. Miałem podobne problemy, gdy przypadkowo go usunąłem.


1

Porządkowanie projektu i usuwanie DerivedDatazadziałało.


1

Omówiłem podobny komunikat o błędzie z inżynierem Apple podczas WWDC2017. Wygląda na to, że ten problem może mieć wiele przyczyn i jestem świadomy, że mój jest nieco inny niż opisany powyżej.

Mój zespół spędził tygodnie, próbując to rozgryźć, i skończyło się to błędem w kompilatorze Apple, którego sami nigdy nie moglibyśmy znaleźć. Ponadto ma BARDZO łatwe obejście.

Tak więc, to tylko ja publikuję tutaj poprawkę, aby zmaksymalizować prawdopodobieństwo, że ktoś inny wyszuka ten mylący komunikat o błędzie i znajdzie tę odpowiedź.

A więc oto jest. W naszym przypadku mieliśmy projekt Objective-C wykorzystujący połączenie frameworków Swift i Objective-C. Ta poprawka może mieć zastosowanie w nieco innych kontekstach, po prostu spróbuj.

Zdarza się, że występuje błąd w sposobie, w jaki flagi kompilacji są agregowane z frameworka i projektu, a „czysty” projekt Objective-C „aktywuje” go.

Rozwiązanie: dodaj jeden, pusty plik Swift („Cokolwiek.swift” lub cokolwiek) w projekcie Objective-C, dzięki czemu nie będzie już czysto obiektywny-c (nowy-> plik-> Swift plik, nie utwórz nagłówek mostkowania. Plik będzie zawierał tylko import Foundation).

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.