我在 Swift 中有这个枚举
enum Direction: Int{
case Left2Right = 0, Right2Left
}
还有这个协议(protocol)
@objc protocol CellDelegate : NSObjectProtocol{
optional func has(direction:SwipeDirection) -> Bool
}
我收到这个错误
方法不能被标记为@objc,因为参数的类型不能在 Objective-C 中表示
谁能告诉我为什么会出现此错误以及如何解决? 谢谢!
最佳答案
@objc 属性使协议(protocol)与 Objective C 兼容(即可用)。但是 swift 枚举(在 1.2 beta 之前)在 Objective C 中不可用。因此您不能在该协议(protocol)中使用 swift 枚举。
我认为最好的解决方案是使用 swift 1.2 - 它仍处于测试阶段(截至今天),但可以将 @objc
属性应用于 swift 枚举。
关于ios - 如何在 Swift 协议(protocol)可选函数中使用枚举作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590323/