我試圖擴展我的協議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