2

我正在尝试将我的核心数据数据库/.sqlite 文件同步/上传到保管箱。一旦我的用户登录,我有一个按钮来上传文件:

-(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 文件位于您创建它的任何位置。这并不神秘——你必须告诉 Core Data 你想把文件放在哪里,它会去你说它应该去的地方。

如果您使用 Apple 的项目模板之一,您的应用程序委托类(在方法中)中可能有一行persistentStoreCoordinator看起来像

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

这就是它所在的位置,这就是您应该在应用程序中找到文件路径的方式。

可能就是一切。如果您没有使用选中“允许外部存储”的二进制属性,则它是整个数据存储。如果您正在使用它们,则有一个并行的隐藏目录,其名称未记录,其中包含外部二进制文件。

将数据存储复制到 Dropbox 不太可能有用。您无法通过这种方式将数据存储从一台设备同步到另一台设备 - 几乎可以保证数据损坏。

于 2013-02-17T00:09:44.000 回答