2013年11月13日

CoreData: FATAL ERROR: The persistent cache of section information does not match the current configuration

Core Dataアクセス時に
CoreData: FATAL ERROR: The persistent cache of section information does not match the current configuration. You have illegally mutated the NSFetchedResultsController's fetch request, its predicate, or its sort descriptor without either disabling caching or using +deleteCacheWithName:
と表示されて、アプリがクラッシュした場合の対処法。

何らかの理由でCore Dataのキャッシュの整合性がとれていないというメッセージなので、キャッシュを使用しないか、初期処理としてキャッシュをクリアする。

キャッシュをクリアする
[NSFetchedResultsController deleteCacheWithName:@"Root"];


キャッシュを使用しない(キャッシュ名にnilを設定する)
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:managedObjectContext sectionNameKeyPath:nil cacheName:nil];



参考記事:
http://cocoadays.blogspot.jp/2010/07/uisearchdisplaycontroller_15.html
http://cocoadays.blogspot.jp/2010/06/nsfetchedresultscontroller-performfetch.html
http://stackoverflow.com/questions/2709768/nsfetchedresultscontroller-crashing-on-performfetch-when-using-a-cache
ラベル:IOS Mac apple iPAD iPhone
posted by mobileDeveloper at 19:11 | Comment(0) | TrackBack(0) | Core Data | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック