enum SearchBarAction {
case Cancel
case Bookmark
case Location
case Category
case Filter
}
@objc protocol SearchBarNavigatorDelegate: class {
optional func searchBarNavigator(clicked: SearchBarAction)
}
这给了我一个错误
Method cannot be a member of an @objc protocol because the type of the parameter cannot be represented in Objective-C
我需要这个方法是可选的,因此我不能删除@objc来解决这个问题。
在将枚举作为参数传递给方法时,有没有办法使用可选的协议方法?
答案 0 :(得分:10)
如果使用原始类型声明枚举为@objc
,它将起作用:
@objc enum SearchBarAction: Int {
case cancel
case bookmark
case location
case category
case filter
}