Ios 如何";“听”;用于使用simperium更改特定对象

Ios 如何";“听”;用于使用simperium更改特定对象,ios,core-data,simperium,Ios,Core Data,Simperium,不知您能否帮助我理解如何将此代码“listen”更改为simperium。当使用NSFetchedResultsController时,这一切都会自动发生,但如何处理以下代码?我试着看了一下文件,但我不太清楚 NSError *error; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; fetchRequest.entity = [NSEntityDescription entityForName:kPersonEnt

不知您能否帮助我理解如何将此代码“
listen
”更改为
simperium
。当使用
NSFetchedResultsController
时,这一切都会自动发生,但如何处理以下代码?我试着看了一下文件,但我不太清楚

NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
fetchRequest.entity = [NSEntityDescription entityForName:kPersonEntity inManagedObjectContext:self.managedObjectContext];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"title == queen"];
NSArray *array = [[self.managedObjectContext executeFetchRequest:fetchRequest error:&error] filteredArrayUsingPredicate:predicate];

if(array.count > 0) {
    _queen = (Person *)[array objectAtIndex:0];
}

谢谢

您可以收听
NSManagedObjectContextDidSaveNotification
通知并相应地采取行动。Simperium处理并保存任何更改后,您将收到
NSManagedObjectContextDidSaveNotification
通知。倾听它:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contextSaved:) name:NSManagedObjectContextDidSaveNotification object:ctx];
然后,在
contextSaved:
方法中,过滤掉您关心的对象

    - (void)contextSaved:(NSNotification *)n
    {
        NSDictionary *userInfo = [n userInfo];
        NSSet *objects = <see NSManagedObjectContext Change Notification User Info Keys>
        <filter/process objects>
    }

您可以收听
NSManagedObjectContextDidSaveNotification
通知并相应地采取行动。Simperium处理并保存任何更改后,您将收到
NSManagedObjectContextDidSaveNotification
通知。倾听它:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(contextSaved:) name:NSManagedObjectContextDidSaveNotification object:ctx];
然后,在
contextSaved:
方法中,过滤掉您关心的对象

    - (void)contextSaved:(NSNotification *)n
    {
        NSDictionary *userInfo = [n userInfo];
        NSSet *objects = <see NSManagedObjectContext Change Notification User Info Keys>
        <filter/process objects>
    }

最好的选择是查看
SPBucketDelegate.h
。您可以在任何
SPBucket
上设置
delegate
,并直接从Simperium接收各种通知


首选此方法,因为它可以确保您不会对Simperium在幕后执行的数据管理产生不利影响。

您最好的选择是查看
SPBucketDelegate.h
。您可以在任何
SPBucket
上设置
delegate
,并直接从Simperium接收各种通知


首选这种方法,因为它可以确保您不会对Simperium在幕后执行的数据管理产生不利影响。

我迷路了。你想听到的变化到底是什么?我迷路了。您试图侦听更改的对象到底是什么?太好了,谢谢,现在我了解了它的工作原理,只需使用
handleContextObjectsIDChangeNotification
,它就能按预期工作!很好,谢谢,现在我了解了它的工作原理,只需使用
handleContextObjectsIDChangeNotification
,它就可以正常工作了!