我NSOperationQueue
有一套NSOperationQueueDefaultMaxConcurrentOperationCount
。它充满了NSOperation
物体(到目前为止没有什么奇怪的)。我将其子类化NSOperation
以执行一些后台任务。
- 从互联网下载数据。
- 解析数据,以便我可以读取它。
创建一个 NSManagedObject:
[NSEntityDescription insertNewObjectForEntityForName:@"Channel" inManagedObjectContext:context];
将其与上下文一起保存。
[managedObjectContext 保存:&错误]
我喜欢这一切都在后台发生,这样 UI 就不会被阻塞。我读了这篇关于核心数据并发的文章,据我所知。最好的方法是在 each 中创建一个新NSManagedObjectContext
的NSOperation
,但共享相同的持久存储协调器。
然而,这很容易做到,当谈到保存它在文档中说的上下文时,这样做很容易出错。所以我的问题如下:
如果我在 NSOperationQueue 中运行不同的操作,这些操作是否会在保存托管对象上下文时相互干扰?还是等到保存完成才执行下面的操作?
我可以安全地将上下文保存在 NSOperation 中吗?或者这真的是不好的做法?
我希望有人能对这件事有所了解,因为我现在真的很困。