Ios 如何在主线程上调用更新
我有一个私有的Ios 如何在主线程上调用更新,ios,swift,Ios,Swift,我有一个私有的NSManagedObjectContext队列,用于将实体保存到核心数据。保存完成后,我想发送一个通知。但是,它似乎不喜欢我从私有队列发送通知。这是我的专用队列代码: let parentManagedContext = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext! let privateManagedContext = NSManagedObjectConte
NSManagedObjectContext
队列,用于将实体保存到核心数据。保存完成后,我想发送一个通知。但是,它似乎不喜欢我从私有队列发送通知。这是我的专用队列代码:
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)
})
希望这有帮助
dispatch_async(dispatch_get_main_queue()) {
NSNotificationCenter.defaultCenter().postNotificationName(kNotificationName, object: nil)
}