0

アプリをクラッシュさせるバグがある Core Data アプリを持っていますが、その原因をまだ突き止めていません。クラッシュの結果の 1 つは、アプリが次に起動されたときに、以前にアプリケーションで使用された永続ストアを開くことができないことです。addPersistentStoreWithType:メソッドから次のエラーが返されます。

NSUnderlyingException = Error validating url for store;

そしてもちろん、アプリによって以前に保存されたオブジェクトを取得することはできません。アプリが永続ストアを見つけられなくなる原因を知っている人はいますか?

このすべてが発生する前にアプリがシャットダウンする原因となるクラッシュにより、次のクラッシュ ログが生成されます。

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000
Crashed Thread:  0

Thread 0 Crashed:
0   libSystem.B.dylib              0x0007e98c __kill + 8
1   libSystem.B.dylib              0x0007e97c kill + 4
2   libSystem.B.dylib              0x0007e96e raise + 10
3   libSystem.B.dylib              0x0009361a abort + 34
4   libstdc++.6.dylib              0x000453b0 __gnu_cxx::__verbose_terminate_handler() + 376
5   libobjc.A.dylib                0x00005858 _objc_terminate + 104
6   libstdc++.6.dylib              0x00043776 __cxxabiv1::__terminate(void (*)()) + 46
7   libstdc++.6.dylib              0x000437ca std::terminate() + 10
8   libstdc++.6.dylib              0x00043896 __cxa_throw + 74
9   libobjc.A.dylib                0x00004714 objc_exception_throw + 64
10  Foundation                     0x000013c2 __NSThreadPerformPerform + 570
11  CoreFoundation                 0x00056a96 CFRunLoopRunSpecific + 1834
12  CoreFoundation                 0x00056356 CFRunLoopRunInMode + 42
13  GraphicsServices               0x00003b2c GSEventRunModal + 108
14  GraphicsServices               0x00003bd8 GSEventRun + 56
15  UIKit                          0x00002768 -[UIApplication _run] + 384
16  UIKit                          0x0000146c UIApplicationMain + 688
17  Meetchu                        0x00002568 main (main.m:14)
18  Meetchu                        0x0000251c start + 32

この情報から何が起こっているのかわかりません。誰でもこれらのエラーのいずれかを助けることができますか?

よろしくお願いします。

4

2 に答える 2

1

アプリ ディレクトリを基準にして毎回再生成するのではなく、アプリのディレクトリ内のファイルへの実際の URL を保存している場合、無効な URL は、シミュレーター/デバイスがアプリ ディレクトリの名前をランダムな UUID に変更した結果です。 . クラッシュに応じて時々それを行います。

明らかな最初のステップは、URL をログに記録し、ストアが実際にその場所にあるかどうかを確認することです。

于 2010-07-06T22:10:58.780 に答える
0

ドリュー、

コードを見なくても、私が最初に Core Data を使い始めたときの悩みの種の 1 つは、モデルのバージョン管理でした。管理対象オブジェクト モデルを何らかの方法で変更した場合、バージョン管理 (つまり、軽量) コードを配置せずにアプリがクラッシュする原因となります。

これが問題の原因ではない可能性がありますが、iPhone シミュレーターからアプリを削除するか、iPhone シミュレーター メニューの [コンテンツと設定のリセット] を使用してみてください。これで問題が解決した場合は、移行の問題が発生しています。

乾杯。

于 2010-07-06T19:38:44.110 に答える