2014-11-05 74 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位。