2016-09-13 38 views
2

當我嘗試從swift調用objective-c方法時出現錯誤。 我的Objective-C的.h類:從Swift調用objective-c方法錯誤

@class myType; 
@interface myClass : NSObject 
- (myType *)myMethod; 

然後,我將創建一個對象MyClass的形式,並試圖調用myMethod的斯威夫特(我已經聲明MyClass類型的anObject):

let a = anObject.myMethod(); 

,但我出現錯誤: 'myClass'類型的值沒有成員'myMethod' 如果我將myType更改爲其他值,錯誤消失。因此,它應該是在迅速不承認的的myType一個問題..

我感謝所有幫助

+0

@class myType;'是不夠的,Swift需要知道該類的接口。 –

+0

你能舉個例子嗎? – Besat

+0

包含'@interface myType .... @ end'的頭文件必須包含在橋接頭文件中。 –

回答

1

原來我的真正問題是別的! 我只好直接刪除導出的數據:

  • 窗口 - >項目 - >導出數據 - >刪除
  • 清理項目
  • 退出Xcode中
  • 開放的Xcode
  • 生成項目

顯然,使用swift我必須更經常地這些步驟..

2
@class myType; 

僅僅是一個「向前聲明」那類的。爲了調用從任何的Objective-C或雨燕

- (myType *)myMethod; 

方法,編譯器需要知道類的 實際接口聲明。因此,「myType.h」或任何 文件包含

@interface myType : NSObject 
// ... 
@end 

必須從橋接頭文件被包括在內。

備註:類名應以大寫字母開頭。