Objective-c - NSFetchedResultsController CoreData callback issue
巴扎黑
巴扎黑 2017-05-02 09:23:32
0
0
345
  • (NSFetchedResultsController *)fetchedResultsController {

    // Recommended writing method to reduce the nesting level
    if (_fetchedResultsController != nil) {

       return _fetchedResultsController;

    }

    // First determine which entity needs to be used
    NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"XMPPMessageArchiving_Message_CoreDataObject"];

    // Sort
    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"timestamp" ascending:YES];

    request.sortDescriptors = @[sort];

    //Only read messages from the current user
    NSLog(@"streamBareJidStr============%@",[SXXMPPTools sharedXMPPTools].xmppStream.myJID);
    *

request.predicate = [NSPredicate predicateWithFormat:@"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;

}

pragma mark fetcedresults proxy method context change

  • (void)controllerDidChangeContent:(NSFetchedResultsController *)controller{

    
     [self.tableview reloadData];
    

    }

I added this query condition request.predicate = [NSPredicate predicateWithFormat:@"streamBareJidStr=%@",[SXXMPPTools sharedXMPPTools].xmppStream.myJID]; I added this query condition and there will be no callback when the database content changes.
This is the data for reading XMPP chat messages because you need to switch accounts to log in. I don’t want to find out the historical messages of previous accounts, so I need to add this predicate

巴扎黑
巴扎黑

reply all(0)
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template