如何在Swift Protocols可选函数中使用Enums作为参数

时间:2015-02-18 17:46:51

标签: ios swift enums protocols

我在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

任何人都可以告诉我为什么会出现此错误以及如何修复它? 谢谢!

1 个答案:

答案 0 :(得分:7)

@objc属性使协议与目标C兼容(即可用)。但是,目标C中没有快速枚举(1.2 beta之前)。因此,您不能在该协议中使用swift枚举。

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