2016-09-06 9 views
1

コアデータにエンティティを保存するために使用する専用のNSManagedObjectContextキューがあります。保存が終了したら、NSNotificationを送信したいと思います。しかし、それはプライベートキューから通知を送信するのが好きではないようです。これは、プライベートキューの私のコードです:私はメインスレッドで実行するようにperformBlock内のブロックを追加するにはどうすればよいメインスレッドで更新プログラムを呼び出す方法

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 
    } 
} 

答えて

1

私はこの質問を投稿してから分かりました。答えを見つけました。

NSOperationQueue.mainQueue().addOperationWithBlock({ 
    NSNotificationCenter.defaultCenter().postNotificationName(kNotificationName, object: nil) 
}) 
0

が、これは

dispatch_async(dispatch_get_main_queue()) { 
    NSNotificationCenter.defaultCenter().postNotificationName(kNotificationName, object: nil) 
} 
をホープ:私がしなければならなかったすべては try privateManagedContext.save()コードの後に​​このコードを追加しました
関連する問題