まず、fetchedObjectsがnilの場合、エラーが発生していない可能性があります。エラーを直接チェックする必要があります。必要に応じてNSErrorを読んでください
If (error){
//handle error here...
<#statements#>
//return early if this is going to cause a crash
return;
}
考えられるすべてのcoreDataエラーコードのリストは次のとおりです:
https ://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Miscellaneous/CoreData_Constants/Reference/reference.html
使用するものを減らします。たとえば、検証を使用していない場合、検証エラーが発生することはありません。
次に、より悲惨なクラスのいくつかを処理する汎用クラスを作成します。それらが発生する可能性はほとんどありませんが、最善の方法は、ユーザーに何か問題が発生したことを示すメッセージを表示し、アプリを削除して再インストールするように依頼することです。(または、実装にとってそれほど難しくない場合は、リセットコードを記述します)。
次に、各エラーポイントで、異なる方法で処理したい特定のエラーが発生する場合があります。とにかくコード内の各エラーポイントを調べて、abort()呼び出しを削除するので、この分析はプロセスに簡単に適合します。
通常、コアデータがiPhoneでのフェッチ時にエラーを生成する場合、何か悲惨なことが起こりました。データの保存または挿入でエラーが発生した場合は、ユーザーに何を期待するかを伝えた後、その理由と最悪の場合は最悪の場合は変更を破棄することを試みることができます。変更を破棄することが受け入れられない場合(たとえば、ユーザーまたは他のユーザーが作成したデータのドキュメントを保存している場合)、問題を把握するためにさらに作業を行う必要があります。最も可能性の高い保存エラーは、ディスク容量が不足していることです。