0
私が宣言するプロトコルのデフォルト実装はComparable
です。プロトコルを "Comparable"プロトコルにデフォルトで準拠させるように拡張する
protocol Asset: Comparable {
func getPriority() -> AssetPriority
}
が、その後、私は何度も何度も同じ2つの機能を実装する必要があります。以下は、私が(拡張子なし)プロトコルの継承を行うことができます知っているエラーにExtension of protocol 'Asset' can not have an inheritance clause
protocol Asset {
func getPriority() -> AssetPriority
}
extension Asset: Comparable {
static func < (lhs: Asset, rhs: Asset) -> Bool {
return lhs.getPriority() < rhs.getPriority()
}
static func == (lhs: Asset, rhs: Asset) -> Bool {
return lhs.getPriority() == rhs.getPriority()
}
}
を与えます
私は
はそれのように(ちょうどスウィフト3でまだサポートされていないプロトコルのプロトコル拡張です(...それはプロトコルの目的に反しているため)、すべての資産は、共通の基本クラスから継承する必要はありませんクラスのためのものですか?)
@DudeOnRockコンパイルはうまく:http://swiftlang.ng.bluemix.net/#/repl/587abe5eaadcf805dca39a23 – Alexander
@DudeOnRockしかし、ええ、 'Asset'はもうそれ自身のタイプとして使用することはできませんあなたの場合'Equatable'または' Comparable'から継承します。それは不完全なタイプです – Alexander
申し訳ありませんが、私はあなたの答えをあまりにも迅速に判断しました...私は、拡張子の引数型として 'Self'ではなく' Asset'を持っていました。どうもありがとうございます! – DudeOnRock