プロトコルメタタイプスウィフトに使用することはできません私は私が持っているプロトコルタイプのためのクロージャを作成しようとしていますが、私は次のエラー静的メンバー
静的メンバを取得しています「menuItemSorter」に関する使用することはできませんプロトコルメタタイプ 'MenuItem.Protocol'
ここに私が遊び場で走ろうとしているコードの縮小版があります。
protocol MenuItem {
var order: Int {get}
}
extension MenuItem {
static var menuItemSorter: (MenuItem, MenuItem) -> Bool {
return { $0.order < $1.order }
}
}
class BigItem : MenuItem {
var order: Int = 1
}
let bigItems = [BigItem(), BigItem()]
let sorter = MenuItem.menuItemSorter
私はメニューアイテムを並べ替えることができたMenuItemのクラス/静的VARの方法を有することができるようにしたいのですが、これを行うための最善の方法は何ですか?
の可能性のある重複した[スウィフト:プロトコル拡張のデフォルトのプロトコルの実装を提供](http://stackoverflow.com/questions/35043292/swift -providing-a-default-protocol-in-a protocol-extension-extension) – Hamish
あなたの特定の設定は安全ですが、 'menuItemSorter'の実装は' MenuItem'の他の静的要件に自由にアクセスできると考えてください。デフォルトの実装はありません。 – Hamish