我有一个 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)
})

09-07 16:42