не вдається надрукувати об'єкт ('po') у швидкому проекті xcode6 beta 6 osx: (Помилка при автоматичному імпорті: не вдалося отримати модуль '__ObjC' з контексту AST)


87

Спроба надрукувати об’єкт ( poкоманду) у проекті xcode 6 beta 6 OSX Swift призводить до появи цього повідомлення про помилку:

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

У цьому випадку об'єктом розгляду є екземпляр NSManagedObject.

Будь-яка порада щодо того, як допомогти автоматичному імпорту в __ObjC moduleконтексті LLVM Abstract Syntax Tree?


У мене така сама проблема, я навіть не можу самостійно здійснити перегляд viewController. Я не уявляю, звідки це береться і як це вирішити
BObereder

1
У мене досі така сама проблема і в бета-версії 7.
weiran

2
використовувати друк замість po
ant_one

2
Замість того, щоб використовувати вираз, ви спробували змінну кадру managedObject ?
vladof81

5
змінна кадру 'працює' (так само і абревіатура fr v ). У моєму випадку мій ' manageObject - це JSON у словнику через AFNetworking. Я хотів би бачити у словнику щось на зразок managedObject ['key'] . Це не працює з fr v .
Zak J

Відповіді:


24

Починаючи з Xcode 6.1, якщо ви спробуєте команду po двічі, вона буде працювати з другої спроби. Перша команда po завжди буде невдалою для кожного нового сеансу налагодження, але наступні виклики працюють.


те саме тут, він розбився
user1366265

7
Це вже не працює для Xcode 7 ... все той же збій
Bartłomiej Semańczyk

4
З другої спроби я отримую:error: The AST context is in a fatal error state.
yujean

7

Майте таку ж проблему в 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.


3

Я б рекомендував двічі перевірити, чи є у вас

-D ДЕБУГ

прапор встановлений у розділі «Інші швидкі прапори» для схеми, яку ви використовуєте для налагодження. Я відчував подібні проблеми, коли випадково видалив їх.


1

Чистка мого проекту та видалення DerivedDataпрацювали у мене.


1

Я обговорював подібне повідомлення про помилку з інженером Apple на WWDC2017. Здається, ця проблема може мати багато причин, і я усвідомлюю, що моя дещо відрізняється від описаної вище.

Моя команда тижнями намагалася це зрозуміти, і в підсумку це виявилося помилкою компілятора Apple, яку ми ніколи не могли зрозуміти самі. Крім того, він має ДУЖЕ просте обхідне рішення.

Отже, це лише я розміщую тут виправлення, щоб максимізувати ймовірність того, що хтось інший шукає це заплутане повідомлення про помилку і знаходить цю відповідь.

Отже, ось воно. У нашому випадку у нас був проект Objective-C з використанням поєднання фреймворків Swift та Objective-C. Це виправлення може застосовуватися в дещо іншому контексті, просто спробуйте.

Трапляється помилка з тим, як компілюючі прапори агрегуються з фреймворків та проекту, а проект "чистого Objective-C" його "активує".

Рішення: додайте один порожній файл Swift ("Whatever.swift" або будь-який інший) у свій проект Objective-C, роблячи його вже не чисто-цільовим-c (new-> file-> Swift file, don't створити заголовок моста. Файл міститиме лише імпорт Foundation).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.