核心数据:将主线程上的ManagedObjectContext与新生成的线程同步

时间:2012-04-02 22:25:26

标签: core-data ios5

我有一个多线程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

0 个答案:

没有答案