2

Mac OS X Leopard アプリで Core Data SQLite ストアを移行しようとしています。移行自体は単純で、モデルのバージョン間でいくつかの変更があるNSEntityMigrationPolicyだけで、文字列操作を少し行うカスタムが 1 つあります。

99% の確率で、これは完全に機能します。ただし、時々EXC_BAD_ACCESSin objc_assign_strongCastunderでクラッシュしmigrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error:ます。

この時点では、カスタム移行ポリシーは呼び出されていないため、それが原因ではないと思います。また、マッピング モデル ファイルを 3 回チェックしましたが、すべて問題ないようです。

キッカーは、同じファイルを再度移行しようとすると、通常は正常に動作することです。これのデバッグをどこから開始すればよいかわかりません。

4

2 に答える 2

2

DTS と話し合ったところ、これはMac OS X 10.6 の Core Data のバグであることが判明しました。

nil回避策: にエラーを渡していないことを確認してくださいmigrateStoreFromURL: type: options: withMappingModel: toDestinationURL: destinationType: destinationOptions: error:。これは許可されるべきですが、この場合クラッシュを引き起こします。

于 2009-11-04T16:06:17.907 に答える
0

2つのこと:

  1. Apple が提供するツール (Instruments) を使用して、メモリ管理の問題を追跡します。それはまだあなた自身のコードのどこかにあるかもしれません。
  2. これを単純で再現可能なケースに減らし、Apple にバグを報告してください。*

「自動」移行を取り巻く多くの問題が発生し、深刻な一時停止を余儀なくされていることに気付きました。それらに対処する唯一の方法は、Apple がそれらすべてを認識していることを確認することです。

于 2009-11-03T15:54:44.193 に答える