我有一个SQLite支持的CoreData实体,它具有一个名为timestamp
的日期类型属性,它在我的NSManagedObject
子类中表示为NSTimeInterval
(unix时间戳)。
我正在尝试按时间戳排序这些实体,但只是像分钟那样精细(而不是秒)。
我可以使用
直接在SQLite中完成此操作ZLOCALTIMESTAMP - CAST(ZLOCALTIMESTAMP AS INT) % 60
从时间戳中删除秒数,但需要找出使用NSSortDescriptor
和NSFetchedResultsController
一起执行此操作的方法。
以下是我的数据和直接SQLite测试的示例......
我很确定我可以为执行此计算的模型添加一个瞬态属性,并将NSSortDescriptor
应用于该属性但是当然还没有尝试过,并想知道是否有任何推荐的方法做这样的事情。
根据评论进行修改
好的,所以我不能在排序描述符中使用transient属性。以下是有关设置的更多信息......
它当前的工作方式是实体代表一组对话中的最新消息,这些对话按最新消息的时间戳排序。当新消息进入时,它们将成为该对话的最新消息,因此时间戳会发生变化。时间戳亚秒精度,如屏幕抓取所示。
问题是,每当有新消息进入时,它们会在表格视图中重新排序,这种情况可能会经常发生,使得单元格难以点击。
我想更改排序行为以忽略秒数,并且只按分钟排序(请参阅屏幕抓取中的minuteonly列),因此进入的新消息在分钟更改之前不会影响排序。
希望这能澄清事情。
提前致谢:)