按 2 个参数对数组进行 Swift 排序

Enl*_*lil -1 arrays swift cosmicmind

该数组包含实体的实例(核心数据的图形库):

let timCook = Entity(type: "Employees")
timCook["name"] = "Tim Cook"
timCook["company"] = "Apple"
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用,我认为 && 不是按多个值排序的正确方法......

self.storage.sortInPlace ({ ($0["company"] as? String) < ($1["company"] as? String)
                             && ($0["name"] as? String) < ($1["name"] as? String)
                         })
Run Code Online (Sandbox Code Playgroud)

谢谢

Tim*_*len 5

不要用as!那么多。实际上,根本不要使用它。如果您确定该值存在,则应该选择字典以外的另一种数据类型。

struct Storage {
    let company: String
    let name: String
}

var storage: [Storage]

// fill storage with objects

storage.sortInPlace {
    if $0.company == $1.company { return $0.name < $1.name }
    return $0.company < $1.company
}
Run Code Online (Sandbox Code Playgroud)