我有一个多线程iOS应用程序,后台线程可以与云同步数据。我已经阅读了几个关于将更改从后台线程合并到主线程的问题。
但是,我需要做的是相反的事情。我不知何故需要确保新生成的后台线程获取在主线程的moc中新创建的数据。在产生线程之前。出于某种原因,即使在保存后没有出现在主线程的poc中的一些数据也没有显示在新线程的moc中。我肯定在生成线程及其moc时遗漏了一些东西。
btw:我有一个moc每个线程和一个共享的持久存储协调器。
以下是为每个线程设置moc的代码:
-(NSManagedObjectContext *) storageContext
NSThread *currentThread = [NSThread currentThread];
NSManagedObjectContext *context = [currentThread.threadDictionary objectForKey:@"context"];
if(context != nil)
{
return context;
}
context = [[[NSManagedObjectContext alloc] init] autorelease];
[context setPersistentStoreCoordinator: self.coordinator];
[currentThread.threadDictionary setObject:context forKey:@"context"];
return context;
这是产生线程的代码
-(void)startBackgroundSync
AutoSync *target = [AutoSync withInit];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:target selector:@selector(sync) object:nil];
operation = [operation autorelease];
//Add the operation to the queue
[queue addOperation:operation];
非常感谢正确方向的推动
由于 Sohil