2012-04-05 15 views
0

プリロードされたsqliteデータベースでコアデータを使用しています。私は奇妙な問題に遭遇しています、アプリはシミュレータ上で動作しますが、デバイス上で実行しようとすると、 iPad、私は以下のエラーが表示されます。iOS永続ストアの問題

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSManagedObject persistentStore]: unrecognized selector sent to instance 0x3bebf50' 

モデルからsqliteデータベースを再作成してデータベースを再作成しましたが、同じエラーが表示されます。私はビルドフェーズのセクションで 'Compiled Sources'と 'Copy Bundle Resources'をチェックしました。ファイルはすべてそこにあります。

コード:http://pastebin.com/fTTgEA3W

は私の脳をラッキングされて、それが働いていない理由は、任意のヘルプは本当に感謝されるだろう理解できないようです。

ありがとうございました。さらに詳しい情報が必要な場合はお知らせください。

答えて

0

最初の対策:アプリを削除して再インストールしてください。

第2小節:コード内のpersistentStoreへのコールのテキスト検索。明らかに、この方法を持たないNSManagedObjectContextのアドレスに行きます。見つけたら、エラーを修正してください。

第3の対策:レクリエーションアルゴリズムを確認して、店舗を正しく構築していることを確認してください。大きな店舗を持つ私のプロジェクトでは、店舗が生データからインポートされる必要がある場合には、普通はSETUPフラグを持っています。通常、メモリの必要性のためにシミュレータでのみ動作します。 (SETUPがオフで、店舗がない場合は、以前に生成されたものがコピーされます。)iPad上で、データのインポートに必要なメモリが不足している可能性があります。

+0

ありがとうございました。私はあなたの歩みを試しています。 「iPadでデータをインポートするのに十分なメモリがない可能性があります。」 これは、データベースの行数を減らすか、メソッドsetFetchOffset、setFetchLimit、setFetchBatchSizeに異なる値を使用する必要があるということですか? – JingJingTao

+0

いいえ、大きなSQLiteデータベースを準備するために、シミュレータで生データのインポートを実行することを意味します。アプリを最初に実行すると、それをiPad(プログラムのドキュメントディレクトリ)にコピーすることができます。 – Mundi

+0

こんにちはムンディ、遅く返事を申し訳ありません。私は、問題は、テーブルビューは、多くのレコードを読み込もうとしていると思うと私はsetFetchLimitを使用する場合、メモリの問題がある、100と等しいと言う、それは動作します。 また、私はあなたが示唆していることをまだ理解していない、私は現在、プロジェクトにプリロードされたデータベースを追加し、プログラムのドキュメントディレクトリ(私のアプリケーションデリゲートの私の永続的なストアメソッドのロジック)にコピーします。 私はまだ同じページにいるかどうか分かりません、ご協力いただきありがとうございます。必要に応じてさらに説明してください。私はiOS開発に新しく慣れています。 – JingJingTao

関連する問題