如何在主线程上调用更新

时间:2016-09-06 10:51:09

标签: ios swift

我有一个私有的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中添加一个块以在主线程上运行?

2 个答案:

答案 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)
}