我正在尝试在Objective-C中使用Swift protocol
。
首先它是这样使用tuple
:
protocol Validation {
func validate(value:String?) -> (Bool, ValidationErrorType)
}
因为元组不适合Objective-C,我决定使用Dictionary
。
@objc protocol Validation {
func validate(value:String?) -> [NSNumber : ValidationErrorType]
}
结果是:
方法不能是@objc协议的成员,因为其结果类型无法在Objective-C中表示
你能否分享一下你对我做错了什么的看法?
答案 0 :(得分:2)
该方法因ValidationErrorType
而导致Dictionary
,我认为这会阻止您修改协议。要解决此问题,您必须使其objc
兼容,或者将返回值更改为直接NSDictionary
。
@objc protocol Validation {
func validate(value:String?) -> NSDictionary
}