2

コアデータデータベース/.sqliteファイルをdropboxに同期/アップロードしようとしています。ユーザーがログインすると、ファイルをアップロードするためのボタンが表示されます。

-(IBAction)sync{

NSString *localPath = [[NSBundle mainBundle] pathForResource:@"cache" ofType:@"sqlite"];
NSString *filename = @"cache.db";
NSString *destDir = @"/";
[self.restClient uploadFile:filename toPath:destDir withParentRev:nil fromPath:localPath];
}

しかし、ここでの問題は次のとおりです。.sqliteデータベースの名前がわからないので、以下を調べました。

~/Library/Application Support/iPhone Simulator/<SDK>/Applications/<UUID>/Documents/bc.db

//すべてのファイルも調べましたが、.sqliteファイルが見つかりませんでした。

しかし、私はというファイルを見つけることができません:app name.sqlite私はそれを見つけることしかできませんcache.db、私はここから何をすべきかわかりませんか?cache.dbファイルをアップロードできますか?または、別のファイルがありapp name.sqliteますか?どんな助けでも大歓迎です!

4

1 に答える 1

4

SQLiteファイルは、作成した場所にあります。謎はありません。ファイルが必要な場所をCoreDataに伝える必要があり、ファイルはどこに行くべきかを指示します。

Appleのプロジェクトテンプレートの1つを使用した場合、おそらくアプリデリゲートクラス(persistentStoreCoordinatorメソッド内)に次のような行があります。

NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"MyApp.sqlite"];

それがその場所であり、それがアプリ内のファイルパスを見つける方法です。

それがすべてかもしれません。[外部ストレージを許可する]がオンになっているバイナリ属性を使用していない場合、それはデータストア全体です。それらを使用している場合、外部バイナリを含む名前が文書化されていない並列の隠しディレクトリがあります。

データストアをDropboxにコピーすることは、役に立たない可能性があります。この方法では、データストアをあるデバイスから別のデバイスに同期することはできません。データの破損は事実上保証されています。

于 2013-02-17T00:09:44.000 に答える