2016-11-02 9 views
1

私はMagicalRecordを使用しています。バックグラウンドスレッドでエンティティを作成しようとしていて、メインスレッドでエンティティを使用しようとしています。私は、オブジェクトが永続ストアに存在していない主な文脈でlocalRecipeを取得しようとするとCoreDataのバックグラウンドスレッドでエンティティを作成する

var localRecipe: Recipe? 
MagicalRecord.save({ (localContext : NSManagedObjectContext!) in 
    localRecipe = Recipe.createEntity() 
    localRecipe?.name = "HiHi" 

    }, completion: { (success : Bool, error : Error?) in 

     print(localRecipe?.name) 
     let recipe = localRecipe?.mr_(in: NSManagedObjectContext.mr_default()) 
     print(recipe?.name) 
}) 

:これは私が持っているコードです。私はここで間違って何をしていますか?

答えて

1

Recipe.createEntity()は、デフォルトのコンテキストでRecipeを作成しています。

Recipeエンティティを作成するには、ブロック内でlocalContextを使用する必要があります。例えば:localContextが保存されるとき localRecipe = Recipe.createEntityInContext(localContext)

それから、私はそれが唯一の問題だかはわからないNSManagedObjectContext.mr_default()

+0

、メインコンテキストにマージする必要があります。あなたはどうやって行くのか教えてください。 –

+0

それでした!ありがとうございました。 – James

+0

Woohoo!問題ない :) –

関連する問題