[ios] Swift Bridging Header 가져 오기 문제

지침에 따라 브리징 헤더를 만들고 프로젝트에 추가했습니다. 안타깝게도 다음 오류가 발생했습니다.

: 0 : 오류 : Objective-C 헤더 ‘— path–to — header / …. h’를 가져올 수 없습니다.

스크린 샷 1

빌드 설정에서 브리징 헤더 위치에 헤더 검색 경로 문자열을 추가했지만 도움이되지 않았습니다.

이 문제를 경험 한 사람이 있습니까?



답변

오류가있는 폴더에 파일을 추가하도록주의하십시오! Xcode에서 파일을 만들면 프로젝트-> 프로젝트-> Header.h 폴더로 이동합니다.

Xcode는 Project-> Header.h를 찾고 있습니다.

즉, 프로젝트 폴더 (ProjectName-> ProjectNameFolder)에 파일을 넣어야합니다!

희망;)

업데이트 됨 : 무슨 뜻인지 잘 모르겠지만 문제를 해결하려면 다음을 시도하십시오.
1. 지금까지 생성 한 모든 브리징 파일을 삭제합니다.
2. 프로젝트의 메인 폴더를 선택하고 새 파일-> iOS-> 헤더 파일을 누르십시오.
3. 생성 된 헤더 파일에 가져 오기를 작성합니다.
4. Xcode-> Build Settings에서 프로젝트를 선택하고 검색 필드에 브리징을 입력하고 SWIFT_OBJC_BRIDGING_HEADER 키에 헤더 파일 이름 또는 경로를 입력하십시오!

이 단계를 따르면 헤더 파일이 올바른 위치에 생성됩니다!

: D 도움이 되길 바랍니다!


답변

제 경우에는 실제로 순환 참조의 결과로 발생한 오류였습니다. 브리징 헤더에 클래스를 가져 왔고 해당 클래스의 헤더 파일이 신속한 헤더 ( <MODULE_NAME>-Swift.h)를 가져 왔습니다 . Obj-C 헤더 파일에서 Swift에서 선언 된 클래스를 사용해야했기 때문에이 작업을 수행했습니다. 해결책은 단순히 @class선언적을 사용하는 것 입니다.

따라서 기본적으로 “브리징 헤더를 가져 <MODULE_NAME>-Swift.h오지 못했습니다”라는 오류가 발생했습니다. 위의 오류는 파일을 찾을 수 없다는 오류였으며, 그 위에는 특정 Obj-C 헤더 파일 (즉, View Controller)을 가리키는 오류였습니다.

이 파일을 살펴보면 헤더 안에 -Swift.h가 선언되어 있음을 알았습니다. 이 가져 오기를 구현으로 이동하면 문제가 해결되었습니다. 그래서 저는 객체를 사용해야 MyObject했고, Swift에서 정의 된 객체를 호출 해 보겠습니다. 그래서 간단히 헤더를 다음과 같이 변경했습니다.

@class MyObject;


답변

다음에서 경로를 찾으십시오.

빌드 설정 / Swift 컴파일러 - 코드 생성 / Objective-C 브리징 헤더

해당 파일을 삭제하십시오. 그럼 당신은 괜찮을 것입니다.


답변

이것은 아마도 소수의 사람들에게만 영향을 미칠 것입니다.하지만 제 경우에는 제 프로젝트가 CocoaPods를 사용하고 있었고 그 포드 중 하나에는 자체 CocoaPod가있는 하위 사양이있었습니다. 해결책은 전체 각도 가져 오기를 사용하여 하위 포드의 파일을 참조하는 것이 었습니다.

#import <HexColors/HexColor.h>

보다는

#import "HexColor.h"


답변

파생 데이터를 삭제하면 문제가 해결되었습니다. 이전 커밋에서 체크 아웃해도 동일한 문제가 발생합니다.

해당 옵션 양식 Window-> Projects에 도달 할 수 있습니다.


답변

저에게는 타겟의 빌드 설정에 추가하는 것을 잊었 기 때문입니다.

여기에 이미지 설명 입력


답변

브리징 헤더에 나열 할 헤더 파일 을 찾을 위치를 Xcode 에 알려야 합니다 . 검색 경로 섹션을 찾고 사용자 헤더 검색 경로에 대한 프로젝트 수준 설정을 변경 하여 ‘포드’에 대한 재귀 항목을 추가합니다. 디렉토리 : Pods / ** ”
http://swiftalicio.us/2014/11/using-cocoapods-from-swift/