我有一个私有的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
中添加一个块以在主线程上运行?
答案 0 :(得分:1)
好吧,在我发布这个问题后几分钟我找到了答案。我所要做的只是在try privateManagedContext.save()
代码之后添加此代码:
NSOperationQueue.mainQueue().addOperationWithBlock({
NSNotificationCenter.defaultCenter().postNotificationName(kNotificationName, object: nil)
})
答案 1 :(得分:0)
希望这有帮助
dispatch_async(dispatch_get_main_queue()) {
NSNotificationCenter.defaultCenter().postNotificationName(kNotificationName, object: nil)
}