2012年11月26日

MagicalRecordの2.0.4以降はMR_saveNestedContexts呼ばないと保存(永続化)されないよ

MagicalRecord(https://github.com/magicalpanda/MagicalRecord)で2.0.3までは

_managedObjectContext = [NSManagedObjectContext MR_defaultContext];
[_managedObjectContext MR_save];

で保存(永続化)されていたけど、2.0.4以降はMR_saveNestedContextsを呼ばないと保存されないっす。

_managedObjectContext = [NSManagedObjectContext MR_defaultContext];
[_managedObjectContext MR_saveNestedContexts];


2.0.3まではMR_saveの中で親コンテキストの保存が呼ばれていたんだけど、2.0.4以降だとMR_saveはあくまでも親コンテキストへの変更通知しかせずに、実際に保存(永続化)する場合にはMR_saveNestedContextsを呼ばなければいけない。保存(永続化)はディスクアクセスも発生するしコスト高いので、MR_saveで適時変更通知をしておいて、アプリ終了時とか実際保存したい時にMR_saveNestedContextsを呼べば良いかな。

今更ネタですが、2.0.3→2.0.8にバージョン上げて「保存されないぞ?」と悩んだので。。。

CoreDataの親&子コンテキストについてはhttp://www.slideshare.net/hedjirog/core-data-14134061#btnNextのスライドが分り易くて良い感じです。
ラベル:CoreData
posted by purigen at 13:54| Comment(0) | TrackBack(0) | iPhone | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。