将核心数据数据库/ .sqlite文件同步到Dropbox

时间:2013-02-16 21:12:45

标签: iphone objective-c xcode core-data dropbox

我正在尝试将我的核心数据数据库/ .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的文件?非常感谢任何帮助!

1 个答案:

答案 0 :(得分:4)

SQLite文件是您创建它的地方。没有什么神秘感 - 你必须告诉Core Data你想要文件的位置,它就是你应该去的地方。

如果你使用了Apple的一个项目模板,那么你的app委托类(在persistentStoreCoordinator方法中)可能会有一行看起来像

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

就是这样,这就是你应该在应用程序中找到文件路径的方式。

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

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