iOS上的Simperium未正确同步数据
我正在以同一Simperium用户身份登录的2台iPad上测试数据同步iOS上的Simperium未正确同步数据,ios,synchronization,simperium,Ios,Synchronization,Simperium,我正在以同一Simperium用户身份登录的2台iPad上测试数据同步 如果在iPad1上创建名为object1的对象,它将成功与iPad2同步 如果在iPad2上创建名为object2的对象,它将成功与iPad1同步 如果我在iPad2上修改object1,它将成功与iPad1同步 如果我在iPad1上修改object2,它将成功与iPad2同步 如果我在iPad1上修改object1,它不会将更改与iPad2同步,尽管它会将更改推送到Simperium的数据存储中 如果我在iPad2上修改
- 如果在iPad1上创建名为object1的对象,它将成功与iPad2同步李>
- 如果在iPad2上创建名为object2的对象,它将成功与iPad1同步
- 如果我在iPad2上修改object1,它将成功与iPad1同步
- 如果我在iPad1上修改object2,它将成功与iPad2同步
- 如果我在iPad1上修改object1,它不会将更改与iPad2同步,尽管它会将更改推送到Simperium的数据存储中
- 如果我在iPad2上修改object2,它不会将更改与iPad1同步,尽管它会将更改推送到Simperium的数据存储中
如何解决此问题?这是虫子吗 我想我知道了。我创建了一个方法,将一个对象添加到核心数据中,并为任何未提供的数据写入nil值。例如:
+(BOOL) addActivity:(NSNumber *)identifier item_id:(NSNumber *)item_id {
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSManagedObjectContext *context = appDelegate.managedObjectContext;
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Activity" inManagedObjectContext:context];
Activity *a = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[a setValue:identifier forKey:@"id"];
[a setValue:item_id forKey:@"item_id"];
// Save the context.
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
return NO;
} else {
return YES;
}
return NO;
}
显然,SPDiffer不喜欢这样,因为它不断抛出如下错误:
transform diff for a ghost member (ghost <SPGhost: 0x7fba9617dae0>, memberData {
<data>
}) that doesn't exist (item_id): {
o = "+";
v = 0;
}
我希望这是有意义的,可以帮助其他人。你好,维克多。Simperium应该可以处理这种情况,是否可以访问您正在使用的代码?(或者一个更简单/更小的PoC就可以做到这一点)。我一直无法在我这一方进行指责。非常感谢。
if (item_id) {
[a setValue:item_id forKey:@"item_id"];
}