CoreData中fetchLimit取数组首尾哪项?代码正确性验证
问题解答
你的代码获取的是最后存储的TDD记录,逻辑是正确的,原因如下:
- 你通过
NSSortDescriptor(key: "timestamp", ascending: false)设置了按timestamp字段倒序排序,这会让时间戳最大(最新存储)的记录排在查询结果数组的首位。 fetchLimit = 1限制只取排序后的第一条数据,刚好就是你要的最后存储的那条记录。
补充说明:
- CoreData的
fetch方法返回的是实体对象数组,这里因为限制了fetchLimit为1,所以返回的数组最多只会有一个元素。 - 只要你在存储TDD实体时,
timestamp字段确实记录了存储时的时间,这个逻辑就没问题。你可以打印tdds.first?.timestamp的值,和其他已存储记录的时间戳对比,验证是否为最大的那个。
内容的提问来源于stack exchange,提问作者JB M
相关产品推荐
相关产品推荐

