Objektif-c - Isu panggil balik CoreData NSFetchedResultsController
巴扎黑
巴扎黑 2017-05-02 09:23:32
0
0
348
  • (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);
    *

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 perubahan konteks kaedah proksi

  • (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

巴扎黑
巴扎黑

membalas semua(0)
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan