我正在创建一个聊天应用程序UI,比如什么应用程序,我需要对聊天消息进行排序,并根据NSDate(DD / MM / YY)对它们进行分区。
每个不同的(DD / MM / YY)部分名称将在包含该日期的时间戳上再次排序项目。
如何在NSFetchResultsController中实现此目的。我使用Distinct Query成功实现了这一目标,以获得与DD / MM / YYYY匹配的所有聊天对象日期并查找部分名称。
然后再次向DB查询以查找与日期部分的聊天对象时间戳匹配的所有聊天,但每个聊天对象的时间不同。
但这会消耗核心数据上的大量UI /后端操作。有没有最佳方法来实现这一目标。
示例:
数据库中的聊天对象 聊天ID |消息文本|时间戳|发件人ID |接收者ID
数据示例 CHAT-001 |这是测试1消息| 22/10/2015:12:00:20 | abc.dev.abc.com | def.dev.abc.com CHAT-002 |这是测试2消息| 22/10/2015:13:00:20 | abc.dev.abc.com | def.dev.abc.com CHAT-003 |这是测试3消息| 22/10/2015:13:10:20 | def.dev.abc.com | abc.dev.abc.com CHAT-004 |这是测试4消息| 22/10/2015:14:10:20 | def.dev.abc.com | abc.dev.abc.com CHAT-005 |这是测试5消息| 23/10/2015:13:00:20 | abc.dev.abc.com | def.dev.abc.com CHAT-006 |这是测试6消息| 23/10/2015:13:05:20 | abc.dev.abc.com | def.dev.abc.com CHAT-007 |这是测试7消息| 24/10/2015:13:10:20 | def.dev.abc.com | abc.dev.abc.com CHAT-008 |这是测试8消息| 24/10/2015:13:10:20 | def.dev.abc.com | abc.dev.abc.com
预期输出
部门名称: 22/10/2015 CHAT-001 |这是测试1消息| 22/10/2015:12:00:20 | abc.dev.abc.com | def.dev.abc.com CHAT-002 | 这是测试2消息| 22/10/2015:13:00:20 | abc.dev.abc.com | def.dev.abc.com CHAT-003 |这是测试3消息| 22/10/2015:13:10:20 | def.dev.abc.com | abc.dev.abc.com CHAT-004 | 这是测试4消息| 22/10/2015:14:10:20 | def.dev.abc.com | abc.dev.abc.com
部门名称: 2015年10月23日 CHAT-005 |这是测试5消息| 23/10/2015:13:00:20 | abc.dev.abc.com | def.dev.abc.com CHAT-006 |这是测试6消息| 23/10/2015:13:05:20 | abc.dev.abc.com | def.dev.abc.com
部门名称: 24/10/2015 CHAT-007 |这是测试7消息| 24/10/2015:13:10:20 | def.dev.abc.com | abc.dev.abc.com CHAT-008 |这是测试8消息| 24/10/2015:13:10:20 | def.dev.abc.com | abc.dev.abc.com
任何快速帮助,所以我可以使用NSFetchResultsController并使用performFetchLimit实现Load More选项,非常感谢批量大小。
答案 0 :(得分:0)
我使用transient属性修复了这个问题并且使用了魅力,为Coredata瞬态使用做了一些学习......非常感谢这个建议。