【发布时间】:2014-10-30 03:14:45
【问题描述】:
我在 SO Google 等上到处搜索,但似乎找不到适合手动备份和恢复我的 Core Data Sqlite 文件的解决方案或教程。目的是让用户从文档目录中手动恢复 Core Data SQlite 文件。
This seems promising 但只是为了满足我的需要或将相关部分推断为我的问题。我只想通过备份文档目录来复制 iCloud 所做的事情,而用户每次可能需要恢复数据时都不必将设备恢复到备份。我希望 iOS 8 中的 cloudkit 能让这更简单,但到目前为止还没有任何效果。
总结:如何将文档目录的内容上传到 iCloud,然后再次检索。我不是在同步之后,只是远程存储和检索文档目录。我读过一些人在 Dropbox 上取得了成功,对此持开放态度
更新
NSString *filePath = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"app.sqlite"];
NSString *filePath2 = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"app.sqlite-shm"];
NSString *filePath3 = [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] stringByAppendingPathComponent:@"iCertifi.sqlite-wal"];
//Path to documents directory
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *archivePath = [documentsDirectory stringByAppendingString:@"/files.zip"];
//Zip up documents directory
ZipArchive *archiver = [[ZipArchive alloc] init];
[archiver CreateZipFile2:archivePath];
[archiver addFileToZip:filePath newname:@"backUp.sqlite"];
[archiver addFileToZip:filePath2 newname:@"backUp.sqlite-shm"];
[archiver addFileToZip:filePath3 newname:@"backUp.sqlite-wal"];
【问题讨论】: