2017-10-31 14 views
0

Objective-C 클래스에서 자동 생성 된 Swift 브리징 헤더를 사용하려고하는데이를 포함 시키려고 할 때 브리징 헤더에 많은 오류가 발생합니다. 헤더가 자동으로 생성되기 때문에 내가 잘못 생각한 부분이 전혀 없습니다. 나는 다음 줄을 선언 할 경우 목표 - C 클래스에서 자동 생성 된 스위프트 브리징 헤더를 사용할 수 없음

, 내가 빌드 오류가 없습니다 얻을 것이다 -이 라인없이, 오류를하고 잘 구축 :

#import "Oilist-Swift.h" 

편집 : 난 그냥에 #import "Oilist-Swift.h" 문을 이동 다른 모든 헤더를 가져온 후에는 MFMailComposeViewControllerDelegate과 관련된 오류 만 발생하고 PopupStoreControllerDelegate과 관련된 오류가 발생합니다. 다음은 지금 모든 오류입니다.

Angle brackets contain both a protocol ('PopupStoreControllerDelegate') and a type ('MFMailComposeViewControllerDelegate') 

Unknown class name 'MFMailComposeViewControllerDelegate'; did you mean 'MFMailComposeViewController'? 
Replace 'MFMailComposeViewControllerDelegate' with 'MFMailComposeViewController' 

- (void)mailComposeController:(MFMailComposeViewController * _Nonnull)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError * _Nullable)error; 
    Expected a type (MFMailComposeResult) 

순환 참조를 찾고 지금까지 찾을 수 없습니다.

어떤 통찰력이라도 대단히 감사하겠습니다!

MFMail을 사용하여 알 수없는 이유로 행복하게 보입니다.

+0

그것은 당신의 PopupStoreControllerDelegate 보인다 objective-C에서는 사용할 수 없습니다. 그것의 선언에'@ objc'을 사용 했습니까? 그리고 헤더 파일에'@protocol PopupStoreControllerDelegate;'를 추가해야 할 수도 있습니다. – Sparga

+0

흠 - PopupStoreControllerDelegate는 Objective-C 클래스의 것입니다. 어떤 헤더 파일에 @ 프로토콜을 추가 하시겠습니까? –

답변

2

MessageUI.h을 가져 오면 이제 작동합니다. (MessageUI는 Swift 헤더를 가져 오는 클래스에서 전혀 사용되지 않지만). 나는 그것이 브리지 헤더에 참조하고 MessageUI 물건에 대한 정의가 포함되어 있지 않기 때문에 나는 MessageUI을 가져가 생각

은 ...

해결 방법 :

#import <MessageUI/MessageUI.h> 
#import "Oilist-Swift.h"