(NSFetchedResultsController *)fetchedResultsController {
// Kaedah penulisan yang disyorkan untuk mengurangkan tahap bersarang
jika (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
// Mula-mula tentukan entiti mana yang perlu digunakan
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"XMPPMessageArchiving_Message_CoreDataObject"];
// Isih
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"timestamp" menaik:YA];
request.sortDescriptors = @[sort];
//Hanya baca mesej daripada pengguna semasa
NSLog(@"streamBareJidStr============%@",[SXXMPPTools sharedXMPPTools].xmppStream.myJID);
*
// 从自己写的工具类里的属性中得到上下文
NSManagedObjectContext *ctx = [SXXMPPTools sharedXMPPTools].xmppMessageArchivingCoreDataStorage.mainThreadManagedObjectContext;
// 实例化,里面要填上上面的各种参数
_fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:ctx sectionNameKeyPath:nil cacheName:nil];
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
(void)controllerDidChangeContent:(NSFetchedResultsController *)controller{
[self.tableview reloadData];
}
Saya menambahkan syarat permintaan ini request.predicate = [NSPredicate predicateWithFormat:@"streamBareJidStr=%@",[SXXMPPTools sharedXMPPTools].xmppStream.myJID]; .
Ini adalah data untuk membaca mesej sembang XMPP kerana anda perlu menukar akaun untuk log masuk. Saya tidak mahu mengetahui mesej sejarah akaun sebelumnya, jadi saya perlu menambah predikat ini