xcode6 beta 6 osx swift 프로젝트에서 개체 ( 'po')를 인쇄 할 수 없음 : (자동 가져 오기 오류 : AST 컨텍스트에서 '__ObjC'모듈을 가져 오지 못했습니다)


87

poxcode 6 beta 6 OSX Swift 프로젝트에서 개체 ( 명령) 를 인쇄하려고하면 다음 오류 메시지가 표시됩니다.

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

이 경우 문제의 개체는의 인스턴스입니다 NSManagedObject.

__ObjC moduleLLVM 추상 구문 트리 컨텍스트에 들어갈 때 자동 가져 오기를 돕는 방법에 대한 조언이 있습니까?


나는 같은 문제가 있으며 viewController에서 자기 자신을 찾을 수도 없습니다. 나는 이것이하거나 해결하는 방법에서 오는 아무 생각이 없다
BObereder

1
베타 7에서도 여전히 동일한 문제가 있습니다.
weiran 2014 년

2
po 대신 print 사용
ant_one 2014-09-08

2
식을 사용하는 대신 프레임 변수 managedObject 를 사용해 보셨습니까 ?
vladof81 2014 년

5
프레임 변수 '작동'(약어 fr v도 마찬가지 임). 제 경우에는 ' manageObject 가 AFNetworking을 통해 사전에있는 JSON입니다. 사전에서보고 싶습니다. managedObject [ 'key']와 같습니다 . 그것은 fr v 에서는 작동하지 않습니다 .
Zak J

답변:


24

Xcode 6.1부터 po 명령을 두 번 시도하면 두 번째 시도에서 작동합니다. 첫 번째 po 명령은 새 디버깅 세션마다 항상 실패하지만 후속 호출은 작동합니다.


여기에 같은, 그것은 추락
user1366265

7
그것은 ... 엑스 코드 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 디버그

디버그에 사용하는 체계에 대한 '기타 Swift 플래그'아래에 설정된 플래그. 실수로 삭제했을 때 비슷한 문제가 발생했습니다.


1

내 프로젝트를 정리하고 삭제하면 DerivedData효과적이었습니다.


1

WWDC2017에서 Apple 엔지니어와 유사한 오류 메시지에 대해 논의했습니다. 이 문제는 여러 가지 원인이있을 수있는 것으로 보이며 위에서 설명한 것과 약간 다른 문제라는 것을 알고 있습니다.

우리 팀은이 문제를 알아 내기 위해 몇 주를 보냈고 결국 우리가 알아낼 수 없었던 Apple 컴파일러의 버그가되었습니다. 또한 매우 쉬운 해결 방법이 있습니다.

따라서 이것은 다른 사람이이 혼란스러운 오류 메시지를 검색하고이 답변을 찾을 가능성을 최대화하기 위해 여기에 수정 사항을 게시하는 것입니다.

그래서 여기 있습니다. 우리의 경우 Swift와 Objective-C 프레임 워크를 혼합하여 사용하는 Objective-C 프로젝트가있었습니다. 이 수정 사항은 약간 다른 상황에 적용될 수 있습니다. 시도해보십시오.

컴파일 링 플래그가 프레임 워크와 프로젝트에서 집계되는 방식에 버그가 발생하고 "순수한 Objective-C"프로젝트가이를 "활성화"합니다.

해결책 : Objective-C 프로젝트에 하나의 빈 Swift 파일 ( "Whatever.swift"등)을 추가하여 더 이상 pure-objective-c가 아닙니다 (new-> file-> Swift 파일, 브리징 헤더를 만듭니다. 파일에는 Foundation 가져 오기만 포함됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.