我有一个 private NSManagedObjectContext
队列,用于将实体保存到Core Data。保存完成后,我要发送NSNotification。但是,似乎不喜欢我从专用队列发送通知。这是我的专用队列代码:
let parentManagedContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext!
let privateManagedContext = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
privateManagedContext.persistentStoreCoordinator = parentManagedContext.persistentStoreCoordinator
privateManagedContext.performBlock {
...
// Save the entity
do {
try privateManagedContext.save()
// Send out NSNotification here
}
}
如何在
performBlock
中添加一个块以在主线程上运行? 最佳答案
好吧,在我发布这个问题的几分钟后,我就找到了答案。我要做的就是在try privateManagedContext.save()
代码之后添加以下代码:
NSOperationQueue.mainQueue().addOperationWithBlock({
NSNotificationCenter.defaultCenter().postNotificationName(kNotificationName, object: nil)
})