Maison > Questions et réponses > le corps du texte
(NSFetchedResultsController *)fetchedResultsController {
// Méthode d'écriture recommandée pour réduire le niveau d'imbrication
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
// Déterminez d'abord quelle entité doit être utilisée
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"XMPPMessageArchiving_Message_CoreDataObject"];
// Trier
NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"timestamp" ascending:YES];
request.sortDescriptors = @[sort];
//Lire uniquement les messages de l'utilisateur actuel
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];
}
J'ai ajouté cette condition de requête request.predicate = [NSPredicate predicateWithFormat:@"streamBareJidStr=%@",[SXXMPPTools sharedXMPPTools].xmppStream.myJID]; .
Il s'agit des données permettant de lire les messages de chat XMPP car vous devez changer de compte pour vous connecter. Je ne souhaite pas connaître l'historique des messages des comptes précédents, je dois donc ajouter ce prédicat