我已经在NSManagedObjectContext
中有3个交易:A
, B
, C
。它们以相同的顺序执行/添加到上下文中。
如何只保存第一个A
事务,而在上下文上保留未保存的B
, C
。
insert A
, insert B
, insert C
, commit A
,…
不幸的是NSManagedObjectContext
不能做commit A
,但保存所有的事务。
也许我错过了什么。您的目标是仅且仅当A
的数据已提交给服务器时保存特定对象,例如A
。我错了吗?
如果是这种情况,您可以利用NSOperation
类。将您的工作(保存到持久存储或提交到服务器)包装到NSOperation
子类中。在它们之间添加依赖项
举个例子。
let serverOperation : NSOperation = ...
let localOperation : NSOperation = ...
localOperation.addDependency(serverOperation)
let operationQueue = NSOperationQueue.mainQueue()
operationQueue.addOperations([serverOperation, localOperation], waitUntilFinished: false)
另一种方法是将保存和提交操作视为唯一的事务。