【问题标题】:Sorting tableview cells by creation (swift)按创建排序表格视图单元格(swift)
【发布时间】:2015-01-28 00:03:23
【问题描述】:

我想按创建项目的日期/时间对正在加载核心数据项的tableview 单元格进行排序。我尝试创建一个timeStamp,将其存储为一个属性,然后将其插入我的排序描述符中,以按那个时间戳进行排序,即NSDate。像这样:

//save timeStamp to core data
newLog.timeStamp = NSDate()

//retrieve that timeStamp in my tableviewcontroller
var timeStamp = data.valueForKey("timeStamp") as NSDate

//sort by the timeStamp in order to list the most recent items on top of tableview

let sortDescriptor = NSSortDescriptor(key: "timeStamp", ascending: false)
let sortDescriptors = [sortDescriptor]
fetchRequest.sortDescriptors = [sortDescriptor]

据我所知,tableview 项目没有以任何合理的方式进行排序。就好像排序描述符没有被识别。同样,重点是让最近的项目按顺序显示在列表顶部。

【问题讨论】:

  • 您能描述一下现在发生的问题吗?您当前的尝试有什么问题?
  • 是的,tableview 似乎甚至无法识别排序描述符,因为其中的项目几乎是完全随机的。

标签: swift core-data tableview nssortdescriptor


【解决方案1】:

您可以使用数组的排序方法;

yourArray.sort({$0.date.timeIntervalSinceNow < $1.date.timeIntervalSinceNow})

然后tableView.reloadData() 如果你需要重新加载tableView。如果这是在viewDidLoad() 中完成的,则不需要

【讨论】:

    猜你喜欢
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多