2014-11-05 72 views
5

我有這樣的協議的目標C類:實現目的C協議中夫特

@protocol YTManagerDelegate <NSObject> 
@required 
- (void)uploadProgressPercentage:(int)percentage; 
@end 
... 

和連接到它的迅速類:

class YTShare: UIViewController, YTManagerDelegate{ 

    func uploadProgressPercentage(percentage:Int?){ 
     println(percentage) 
    } 
    ... 

我收到錯誤:類型YTShare確實不符合協議YTShareDelegate,我可能寫錯了swift函數,所以obj類沒有找到它。我如何正確書寫它?

回答

5

中有委託方法兩個錯誤

func uploadProgressPercentage(percentage:Int?){ 
    println(percentage) 
} 

該參數不能是任選的,且C型int被映射到夫特 作爲CInt(別名爲Int32):

func uploadProgressPercentage(percentage:CInt){ 
    println(percentage) 
} 

或者,您可以在Objective-C協議中使用NSInteger,這是在Swift中映射到Int的 。這將是一個32位或64位整數,具體取決於架構上的 ,而int/CInt始終爲32位。