ios - 如何在 Swift 协议(protocol)可选函数中使用枚举作为参数

标签 ios swift enums protocols

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

相关文章:

ios - 将应用程序启动到运行时关闭的最后一个 View

javafx - 将枚举值绑定(bind)到 FXML 中的 Combox

c++ - 将枚举(在结构内声明)值分配给结构内相同枚举类型的变量

ios - 在 iOS 上测试 AdMob

ios - 导航栏标题不粗体

ios - 无法在 Collection View 中选择项目,Swift

c# - 如何在 xsd 中使用枚举

javascript - 在 tableView Swift 中使用 javascript 数据

ios - UILocalNotifications 未按计划触发

ios - iPhone 11 和/或 iOS 13 的 iBeacon 监控/测距问题