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