我想在dropbox中备份我的iphone应用程序数据库中的所有数据并在以后恢复。主要问题是应用程序中有太多数据,所以如果我使用sql查询来获取数据从sqlite3数据库并将其存储到文件中,然后再次从该文件中读取数据并将其插入到数据库中。任何人都建议我如何改进或者最佳方法是什么?
答案 0 :(得分:2)
您可以使用iCloud。 转到Itunes Connect上的应用管理器以生成iCloud密钥。 因此,所有数据都将存储在icloud上。
答案 1 :(得分:0)
您也可以使用uuid作为Web服务的密钥。因此,如果使用删除应用程序和重新安装时,您将使用密钥标识符下载所有数据。
例如:
uuid = [[UIDevice currentDevice] uniqueGlobalDeviceIdentifier];
重要说明:使用全局模式,因为它允许在应用程序之间使用uuid。
答案 2 :(得分:0)
基于Dropbox的Sync API解决方案:
- (IBAction)onTouchDropboxBackup:(id)sender {
DBAccount *account = [[DBAccountManager sharedManager] linkedAccount];
if (account) {
if (![sharedDelegate filesystem]) {
DBFilesystem *filesystem = [[DBFilesystem alloc] initWithAccount:account];
[DBFilesystem setSharedFilesystem:filesystem];
[sharedDelegate setFilesystem:filesystem];
[filesystem release];
}
DBPath *destination = [[DBPath root] childPath:kDataDBFileName];
DBError *error = nil;
//check presense
DBFile *file = [[DBFilesystem sharedFilesystem] openFile:destination
error:&error];
if (error){//not present
[[DBFilesystem sharedFilesystem] createFile:destination
error:&error];
file = [[DBFilesystem sharedFilesystem] openFile:destination
error:&error];
}
if (!error) {
[file writeContentsOfFile:[DOCUMENTS_DIR stringByAppendingPathComponent: kDataDBFileName]
shouldSteal:NO
error:&error];
[file update:&error];
[file close];
}
}else
[[DBAccountManager sharedManager] linkFromController:self];
}