我试图扩展我的协议Option
和Comparable
以使用简单的.sort()
方法。在Swift中使用Comparable扩展@objc协议
下面的简短例子只能用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
}
的Option
协议必须被标记为@objc
或从NSObjectProtocol
继承因为它会与UIKit
被使用。
错误:
-
@objc协议 '选项' 不能缩小非@ objc协议 'Equatable'
-
协议 '选项' 只能被用作一般约束 ,因为它具有自我或相关类型要求
你有什么建议如何解决这个问题?
也许ü需要使用'dynamic' decleration了变量与'objc使用' – Tj3n
我在代码 – Cristik
@Cristik上看不到'SelectOption'谢谢你的纠正。 – dtd