我正在尝试为我拥有的协议类型创建一个闭包,但是我收到以下错误
静态成员'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
Run Code Online (Sandbox Code Playgroud)
我希望能够在MenuItem上有一个类/静态var方法,可以对menuItems进行排序,这是最好的方法吗?
Str*_*ers 38
协议没有其他代码的可访问接口.
您需要从粘贴类型中调用它:
class BigItem: MenuItem {
var order: Int = 1
}
let sorter = BigItem.menuItemSorter
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7453 次 |
最近记录: |