我在一个客观的c类中有这个协议:
@protocol YTManagerDelegate <NSObject>
@required
- (void)uploadProgressPercentage:(int)percentage;
@end
...
和一个连接它的快速课程:
class YTShare: UIViewController, YTManagerDelegate{
func uploadProgressPercentage(percentage:Int?){
println(percentage)
}
...
我收到错误:类型YTShare不符合协议YTShareDelegate ,我可能写错了swift函数,所以obj类找不到它。我怎么写得正确?
答案 0 :(得分:5)
委托方法中有两个错误
func uploadProgressPercentage(percentage:Int?){
println(percentage)
}
参数不能是可选的,C类型int
映射到Swift
作为CInt
(Int32
的别名):
func uploadProgressPercentage(percentage:CInt){
println(percentage)
}
或者,您可以在Objective-C协议中使用NSInteger
,即
映射到Swift中的Int
。这取决于32位或64位整数
在架构上,int
/ CInt
总是32位。