如何在 Swift 协议可选函数中使用枚举作为参数

How to use Enums as parameters in Swift Protocols optional functions

我在 Swift

中有这个枚举
enum Direction: Int{
  case Left2Right = 0, Right2Left
}

和这个协议

@objc protocol CellDelegate : NSObjectProtocol{
   optional func has(direction:SwipeDirection) -> Bool
}

我收到这个错误 Method cannot be marked @objc because the type of the parameter cannot be represented in Objective-C

谁能告诉我为什么会出现此错误以及如何解决? 谢谢!

@objc 属性使协议与 Objective C 兼容(即可用)。但是 swift 枚举(在 1.2 beta 之前)在 Objective C 中不可用。所以你不能在该协议中使用 swift 枚举。

我认为最好的解决方案是使用 swift 1.2 - 它仍处于测试阶段(截至今天),但可以将 @objc 属性应用于 swift 枚举.