我使用Core-Data存储来自联系人的消息
我创建了一个"联系人"表和"消息"表
现在,为了显示消息,我使用一个简单的fetchedResultsController,并将联系人作为谓词。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"contact = %@", self.contact];
一旦消息的数量开始结束,加载需要一些时间,因为我无法从他们的关系中索引消息。
我知道我可以访问该关系中的所有联系人消息,但我还需要类似于
的内容- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath
为了在有新消息显示时更新视图...
我想我的问题是:
对于 3。我知道我可以收听任何NSManagedObjectContextObjectsDidChangeNotification,但问题是我不在乎其他联系人是否在我发送消息时发送消息。另一个......我还没有找到一种聪明的方法来使用KVO来制作这个模型。
答案 0 :(得分:0)
您最好的选择是保留FRC并将配置请求配置为适当批处理。可以说,您不需要一直在设备上显示所有旧消息,并且可以在达到特定年龄时删除,然后在用户需要时从服务器进行查询。
对于排序,您需要向实体添加一个属性并设置它(如果您还没有),然后在获取请求中设置排序描述符。