Cod*_*ess 2 arrays sorting object ios swift
我有两个数组,它们是两个不同的对象,并且都包含一个ID字段。我需要做的是在表视图控制器中按顺序显示它们。它们共享相同的基本信息,大小和ID,除了显示的对象类型外,这些都是唯一显示的数据。当用户选择一个单元格时,它将移动到一个新视图,该视图显示该对象的详细信息。
现在,表中有两个部分,一个部分用于TypeA,另一部分用于TypeB。他们对各自列表中的所有项目进行排序,但在制造项目时却无序。所以看起来像:
TypeA
ID 1
ID 2
ID 5
ID 6
TypeB
ID 3
ID 4
ID 7
Run Code Online (Sandbox Code Playgroud)
我需要的是将它们全部分类为1部分,并在选择时仍打开详细视图。
思想
我可以将它们全部放入AnyObject词典中,然后在查看单个项目时确定它们是否属于一种对象类型或另一种。我觉得这样行得通,但是如何正确排序呢?
将所有通用属性放入协议,构建并排序该通用协议的数组:
protocol HasID {
var id: Int { get }
}
class TypeA : HasID, CustomStringConvertible {
var id: Int
init(_ id: Int) {
self.id = id
}
var description : String {
return ("TypeA(\(self.id))")
}
}
class TypeB : HasID, CustomStringConvertible {
var id: Int
init(_ id: Int) {
self.id = id
}
var description : String {
return ("TypeB(\(self.id))")
}
}
let typeA = [TypeA(1), TypeA(2), TypeA(5), TypeA(6)]
let typeB = [TypeB(3), TypeB(4), TypeB(7)]
let result: [HasID] = (typeA + typeB).sorted { $0.id < $1.id }
print(result)
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)[TypeA(1), TypeA(2), TypeB(3), TypeB(4), TypeA(5), TypeA(6), TypeB(7)]
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |