小编dtd*_*dtd的帖子

使用Swift中的Comparable扩展@objc协议

我想延长我的协议OptionComparable使用简单的.sort()方法.

以下简短示例仅Equatable用于显示错误.

@objc protocol Option: Equatable {
    var title: String { get }
    var enabled: Bool { get }
    var position: Int { get }
}

func ==(lhs: Option, rhs: Option) -> Bool {
    return lhs.position == rhs.position
}
Run Code Online (Sandbox Code Playgroud)

Option协议必须被标记为@objc或从继承NSObjectProtocol因为它会与被使用UIKit.

错误:

  1. @objc协议'选项'无法改进非@objc协议'Equatable'

  2. 协议'选项'只能用作通用约束,因为它具有自我或相关类型要求

你有什么建议如何解决这个问题?

protocols comparable ios swift

6
推荐指数
1
解决办法
1877
查看次数

标签 统计

comparable ×1

ios ×1

protocols ×1

swift ×1