【发布时间】:2016-05-10 14:36:30
【问题描述】:
我有一个具有私有上下文的 NSOperation 子类,以及一个在主队列上具有上下文的单例数据管理器类。所有的 UI 和 crud 操作都由这个单例类完成,而从云工具包中的后台获取则由 NSOperation 子类完成。有几个疑问如下。
-
以下是我在 NSoperation 子类中的代码。下面的代码会造成死锁吗?
self.localStoreMOC?.performBlockAndWait({ () -> Void in //Long process of fetching data from cloud and pushing changes to cloud happens here. var error:NSErrorPointer = nil if self.localStoreMOC!.hasChanges { do { try self.localStoreMOC!.save() } catch let error1 as NSError { error.memory = error1 } if error == nil { self.localStoreMOC!.parentContext!.performBlockAndWait({ do { try self.localStoreMOC!.parentContext!.save() } catch let error1 as NSError { print("wasSuccessful error1 \(error1)") } }) } } } 如果我有另一个使用此类 NSManagedOBject 的单例类,我是否需要通过 ID 传递它们?
【问题讨论】:
标签: ios objective-c multithreading core-data deadlock