【发布时间】:2016-02-22 13:28:56
【问题描述】:
我有一个自定义类的数组
class GameInfo {
var gameStatus :String
var country : String
var isSelected : Bool
}
这里,gameStatus 可能是“*”/“1-0”/“1/2-1/2”
我想先按isSelected 对数组进行排序,然后是gameStatus,然后是country。
我尝试了sortInPlace,但对我不起作用。
假设这是我的数组
let list = [
GameInfo(gameStatus: "*", country: "Italy", isSelected: true),
GameInfo(gameStatus: "1/2-1/2", country: "France", isSelected: true),
GameInfo(gameStatus: "1-0", country: "Italy", isSelected: false),
GameInfo(gameStatus: "*", country: "Germany", isSelected: false),
GameInfo(gameStatus: "0-1", country: "Italy", isSelected: true),
GameInfo(gameStatus: "1/2-1/2", country: "France", isSelected: false),
GameInfo(gameStatus: "*", country: "UK", isSelected: false)
]
如果在选定的游戏中有任何现场游戏应该在顶部,即使在与我的国家/地区相关的任何游戏中该游戏在顶部
假设我的国家是意大利,那么数组的排序顺序是
GameInfo(gameStatus: "*", country: "Italy", isSelected: true),
GameInfo(gameStatus: "0-1", country: "Italy", isSelected: true),
GameInfo(gameStatus: "1/2-1/2", country: "France", isSelected: true),
GameInfo(gameStatus: "*", country: "Germany", isSelected: false),
GameInfo(gameStatus: "*", country: "UK", isSelected: false)
GameInfo(gameStatus: "1-0", country: "Italy", isSelected: false),
GameInfo(gameStatus: "1/2-1/2", country: "France", isSelected: false),
【问题讨论】:
-
我们针对您的问题发布了几个答案。请提供反馈,如果答案确实解决了您的问题,请接受。
-
如我所愿,它不能解决我的问题。我必须通过使用许多数组和 arrayfiltermethod 来管理这个:)