0
排序火力地堡实时数据库中的数据,我需要在一个表视图来显示这些数据,但他们已在混合顺序表视图。我怎样才能把它们放入与数据库中相同的顺序。请帮忙,我会深表谢意。
第一张图片显示我运行该项目后的iPhone屏幕,第二张图片是数据库。我希望他们在数据库中的确切顺序。
排序火力地堡实时数据库中的数据,我需要在一个表视图来显示这些数据,但他们已在混合顺序表视图。我怎样才能把它们放入与数据库中相同的顺序。请帮忙,我会深表谢意。
第一张图片显示我运行该项目后的iPhone屏幕,第二张图片是数据库。我希望他们在数据库中的确切顺序。
我希望时期对象是这样的:
struct PeriodItem {
let key: String
let periodEnd: String
let periodName: String
let periodStart: String
let ref: FIRDatabaseReference?
init(periodEnd: String, periodName: String, periodStart: String, key: String = "") {
self.key = key
self.periodEnd = periodEnd
self.periodName = periodName
self.periodStart = periodStart
self.ref = nil
}
init(snapshot: FIRDataSnapshot) {
key = snapshot.key
let snapshotValue = snapshot.value as! [String: AnyObject]
periodEnd = snapshotValue["periodEnd"] as! String
periodName = snapshotValue["periodName"] as! String
periodStart = snapshotValue["periodStart"] as! String
ref = snapshot.ref
}
func toAnyObject() -> Any {
return [
"periodEnd": periodEnd,
"periodName": periodName,
"periodStart": periodStart,
"key": key
]
}
}
所以
当你填写你的Periods
阵列充分,只需要使用排序:
// periods - array of objects from firebase database
let yourTableViewPeriodsArray = periods.sorted(by: { $0.key < $1.key }) // maybe ">" instead of "<"
然后:
DispatchQueue.main.async {
self.tableView.reloadData()
}
希望它可以帮助。
当我在viewDidLoad中调用print([PeriodItem] .self)时,我得到Array
不清楚您的数据在Firebase数据库中的排序方式 - 是按*键/ UID *还是按优先级*? –
感谢您的回复,我已经添加了第二张图片更加清晰。 –
@ muhcomen检查我的答案。如果您有其他问题 - 欢迎您 –