win*_*ton 3 ios firebase swift firebase-realtime-database swift2
当我将以下Firebase数据库数据加载到我的tableView中时,数据按日期按升序排序.如何通过降序(在顶部显示最新的帖子)来订购?
在Xcode中查询:
let ref = self.rootRef.child("posts").queryOrderedByChild("date").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
Run Code Online (Sandbox Code Playgroud)
JSON导出:
"posts" : {
"-KMFYKt7rmfZINetx1hF" : {
"date" : "07/09/16 12:46 PM",
"postedBy" : "sJUCytVIWmX7CgmrypqNai8vGBg2",
"status" : "test"
},
"-KMFYZeJmgvmnqZ4OhT_" : {
"date" : "07/09/16 12:47 PM",
"postedBy" : "sJUCytVIWmX7CgmrypqNai8vGBg2",
"status" : "test"
},
Run Code Online (Sandbox Code Playgroud)
谢谢!!
编辑:感谢Bawpotter,代码是完整的解决方案
更新的查询:
let ref = self.rootRef.child("posts").queryOrderedByChild("date").observeEventType(.ChildAdded, withBlock: { (snapshot) -> Void in
let post = Post.init(key: snapshot.key, date: snapshot.value!["date"] as! String, postedBy: snapshot.value!["postedBy"] as! String, status: snapshot.value!["status"] as! String)
self.posts.append(post)
self.tableView.insertRowsAtIndexPaths([NSIndexPath(forRow: self.posts.count-1, inSection: 0)], withRowAnimation: .Automatic)
Run Code Online (Sandbox Code Playgroud)
tableView cellForRowAtIndexPath
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("PostCell", forIndexPath: indexPath) as! PostCell
self.posts.sortInPlace({$0.date > $1.date})
self.tableView.reloadData()
Run Code Online (Sandbox Code Playgroud)
Post.swift:
import UIKit
class Post {
var key: String
var date: String
var postedBy: String
var status: String
init(key: String, date: String, postedBy: String, status: String){
self.key = key
self.date = date
self.postedBy = postedBy
self.status = status
}
}
Run Code Online (Sandbox Code Playgroud)
Baw*_*ter 12
当Firebase将数据加载到tableView数据源数组中时,请调用:
yourDataArray.sortInPlace({$0.date > $1.date})
Swift 3版本:
yourDataArray.sort({$0.date > $1.date})
Run Code Online (Sandbox Code Playgroud)
Swift 4版本:
yourDataArray.sort(by: {$0.date > $1.date})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8967 次 |
| 最近记录: |