2011-12-23 7 views
0

私は現在Xcode 4.2.1とiOS 5を使用しています。 SQlite3を使用しようとしましたが、私はいつもこのエラー "読み取り専用データベースを作成しようとしています。 検索した後、私はこのことがリンゴに関連していることがわかります。データベースを書類にするためにDocumentsディレクトリにコピーすることはできません!データの保存と検索

この問題を解決したり、データを格納する別の方法を使用する他の簡単な方法はありますか?

ありがとう

+1

データベースをDocumentsディレクトリにコピーして書き込み可能にすることができます。試してもうまくいかなかった場合は、コードを表示してください。 –

答えて

1

アドバイス:library/cacheディレクトリに保存する必要があります。これは、iTunesまたはiCloudによってバックアップされないようにするためです。私はこの理由で私のアプリが拒否されたためにしか言いません。

iOS Data Storage Guidelines

NSString *path = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; 
2

はい、データを格納するずっとより良い方法がある:Core Dataは。興味がある場合は、good placeです。

アップルはほとんどすべてのドキュメントをSQLiteで削除し、コアデータに切り替えました。コアデータにもパフォーマンスが向上していますので、ではなくという理由がありません。

+0

コアデータがSQLiteの上に構築されていませんか? – Oli

+0

@Oilはい、パフォーマンスはまだ向上しており、管理がはるかに簡単です。 –

+2

また、CoreDataは抽象であるため、Appleが将来sqlite以外のテクノロジを活用することを決定しても、それはまだ動作します:) – jerrylroberts

1

リンゴデバイスでは、ドキュメントディレクトリ内の読み取り/書き込み可能ファイルを処理する標準的な方法です。アプリケーションリソース内にあれば、どのファイルにも書き込むことはできません。そのファイルに何かを書き込むには、そのファイルをドキュメントディレクトリにコピーする必要があります。