Попытка распечатать объект ( po
команду) в проекте OSX Swift xcode 6 beta 6 приводит к следующему сообщению об ошибке:
(lldb) po managedObject
error: Error in auto-import:
failed to get module '__ObjC' from AST context
В этом случае рассматриваемый объект является экземпляром NSManagedObject
.
Любые советы о том, как помочь автоматическому импорту попасть __ObjC module
в контекст абстрактного синтаксического дерева LLVM?
Ответы:
Начиная с Xcode 6.1, если вы дважды попытаетесь выполнить команду po, она будет работать со второй попыткой. Первая команда po всегда будет терпеть неудачу для каждого нового сеанса отладки, но последующие вызовы работают.
источник
error: The AST context is in a fatal error state.
Есть такая же проблема в 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'
Но вы можете использовать
fr v managedObject
вместоpo managedObject
.источник
Я бы рекомендовал дважды проверить, что у вас есть
флаг установлен в разделе «Другие флаги Swift» для схемы, которую вы используете для отладки. У меня возникли аналогичные проблемы, когда я случайно удалил его.
источник
Очистка моего проекта и удаление
DerivedData
сработали для меня.источник
Я обсуждал подобное сообщение об ошибке с инженером Apple на WWDC2017. Кажется, у этой проблемы может быть много причин, и я знаю, что моя проблема немного отличается от описанной выше.
Моя команда потратила недели, пытаясь понять это, и в итоге это оказалось ошибкой в компиляторе Apple, которую мы никогда не смогли бы решить сами. Кроме того, у него есть ОЧЕНЬ простой обходной путь.
Итак, я просто публикую здесь исправление, чтобы максимально увеличить вероятность того, что кто-то другой выполнит поиск этого сбивающего с толку сообщения об ошибке и найдет этот ответ.
Итак, вот оно. В нашем случае у нас был проект Objective-C, использующий смесь фреймворков Swift и Objective-C. Это исправление может применяться в немного разных контекстах, просто попробуйте.
Произошла ошибка в способе агрегирования флагов компиляции из фреймворков и проекта, и проект «чистый Objective-C» «активирует» его.
Решение: добавьте один пустой файл Swift («Whatever.swift» или что-то еще) в свой проект Objective-C, сделав его не-pure-objective-c больше (new-> file-> Swift file, не создайте заголовок моста (файл будет содержать только импорт Foundation).
источник