2017-08-17 7 views
1

私はの時計OSと2つのターゲットを持っています。 ブリッジヘッダを輸入する必要があります。メッセージutilが両方のターゲットに追加されました。 複数のターゲット間で異なるブリッジヘッダーをインポートする

として

「宣言されていない識別子MessageUtilの利用」が、それは、コンパイラにエラーを与えています。

#import "SomeClass.h" 

#ifdef TARGET_OS_WATCH 
#import "Watch-Header.h" 
#import "With_Watch-Swift.h" 
#elif TARGET_OS_IOS 
#import "Without_Watch-Header.h" 
#import "Without_Watch-Swift.h" 
#endif 

@implementation SomeClass 

-(id)init { 
    self = [super init]; 
    if(self) { 
     self.message = [MessageUtil messageOne];//MessageUtil is swift class. 
    } 
    return self; } 

@end 
+0

「SomeClass」のターゲットには何が設定されていますか? – nayem

+0

ComeClassには複数のターゲットがあります。 – boom

+0

'#ifdef'から' #endif'にすべてを削除し、 '' With_Watch-Swift.h ''と' 'Without_Watch-Swift''のどちらかをインポートしてみてください。' 'MessageUtil''が公開されています。 – nayem

答えて

0

あなたは他のターゲットのための追加​​を作成し、単にBuild Settings -> Objective-C Bridging Headerに新しく作成されたブリッジングヘッダーの場所を指定することができます。

enter image description here

関連する問題