如何在可选协议方法中使用带可选类型的参数

时间:2017-01-19 08:15:24

标签: ios swift3 optional-parameters

@objc protocol filterDelegate {
    @objc optional func appliedFilters(_ filters:[String:AnyObject], withDisplayValues displayValues:[String?]) -> Void
}

上述协议方法给我一个错误方法无法标记为@objc,因为参数2的类型无法在Objective-C中表示

我知道这个错误是由于String的使用造成的?与@objc。

如何实现传递String的相同功能?到可选的协议方法。是否有替代方案?

1 个答案:

答案 0 :(得分:0)

仅在Swift中支持

String数据类型。因此,您可以使用NSString而不是String,这两个平台都支持。

@objc protocol filterDelegate {
    @objc optional func appliedFilters(_ filters:[String:AnyObject], withDisplayValues displayValues:[NSString?]) -> Void
}