tidak dapat mencetak objek ('po') dalam proyek xcode6 beta 6 osx swift: (Kesalahan dalam impor otomatis: gagal mendapatkan modul '__ObjC' dari konteks AST)


87

Upaya untuk mencetak objek ( poperintah) di xcode 6 beta 6 OSX proyek Swift menghasilkan pesan kesalahan ini:

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

Dalam hal ini objek yang dimaksud adalah turunan dari NSManagedObject.

Adakah saran tentang cara membantu impor otomatis untuk masuk __ObjC moduleke konteks Pohon Sintaks Abstrak LLVM?


Saya memiliki masalah yang sama, bahkan tidak bisa melihat diri sendiri di viewController. Saya tidak tahu dari mana asalnya atau bagaimana mengatasinya
BObereder

1
Saya masih memiliki masalah yang sama di beta 7 juga.
weiran

2
gunakan print sebagai ganti po
ant_one

2
Alih-alih menggunakan ekspresi, apakah Anda mencoba frame variable managedObject ?
vladof81

5
variabel frame 'works' (begitu juga singkatan dari fr v ). Dalam kasus saya, ' manageObject saya adalah JSON dalam kamus melalui AFNetworking. Saya ingin melihat di kamus, sesuatu seperti managedObject ['key'] . Itu tidak bekerja dengan fr v .
Zak J

Jawaban:


24

Pada Xcode 6.1 jika Anda mencoba perintah po dua kali, itu akan bekerja pada upaya kedua. Perintah po pertama akan selalu gagal untuk setiap sesi debugging baru tetapi panggilan berikutnya berfungsi.


sama di sini, itu
macet

7
Itu tidak berfungsi lagi untuk Xcode 7 ... masih crash yang sama
Bartłomiej Semańczyk

4
Pada upaya kedua, saya mendapatkan:error: The AST context is in a fatal error state.
yujean

7

Memiliki masalah yang sama di 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'

Tapi Anda bisa menggunakan fr v managedObjectbukan po managedObject.


3

Saya sarankan untuk memeriksa ulang apakah Anda memiliki file

-D DEBUG

bendera yang disetel di bawah 'Bendera Swift Lainnya' untuk skema yang Anda gunakan untuk debug. Saya mengalami masalah serupa ketika saya tidak sengaja menghapusnya.


1

Pembersihan dan penghapusan proyek saya DerivedDataberhasil untuk saya.


1

Saya membahas pesan kesalahan serupa dengan seorang insinyur Apple di WWDC2017. Sepertinya masalah ini dapat disebabkan oleh banyak hal, dan saya sadar bahwa penyebab saya sedikit berbeda dari yang dijelaskan di atas.

Tim saya menghabiskan waktu berminggu-minggu untuk mencoba mencari tahu hal ini, dan akhirnya menjadi bug pada kompiler Apple, yang tidak pernah dapat kami temukan sendiri. Juga, ia memiliki solusi yang SANGAT mudah.

Jadi, ini hanya saya memposting perbaikan di sini, untuk memaksimalkan kemungkinan bahwa orang lain melakukan pencarian untuk pesan kesalahan yang membingungkan ini, dan menemukan jawaban ini.

Jadi begini. Dalam kasus kami, kami memiliki proyek Objective-C menggunakan campuran framework Swift dan Objective-C. Perbaikan ini mungkin berlaku dalam konteks yang sedikit berbeda, coba saja.

Kebetulan ada bug dengan cara flag kompilasi dikumpulkan dari kerangka kerja dan proyek, dan "murni Objective-C" proyek "mengaktifkannya".

Solusi: tambahkan satu file Swift kosong tunggal ("Apapun.swift", atau apapun) di proyek Objective-C Anda, membuatnya tidak-murni-objektif-c lagi (baru-> file-> file Swift, jangan buat header penghubung. File hanya akan berisi impor Foundation).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.