要检查您的帐户是否与 Dropbox 相关联,请使用此 。[[DBSession sharedSession] isLinked]
返回一个BOOL
值
if ([[DBSession sharedSession] isLinked]) {
// write your code here..
}
然后将您的文件恢复到以前的版本..
为此,您只需要清楚地了解它们
- 您必须加载要恢复的文件的修订版本。为此,您可以使用其中一种方法
获取文件先前版本的元数据。仅提供最多 30 天的修订。
/* Loads a list of up to 10 DBMetadata objects representing past revisions of the file at path */
- (void)loadRevisionsForFile:(NSString *)path;
/* Same as above but with a configurable limit to number of DBMetadata objects returned, up to 1000 */
- (void)loadRevisionsForFile:(NSString *)path limit:(NSInteger)limit;
例如:[[self restClient] loadRevisionsForFile:@"YourFile" limit:10];
以及这些委托方法,您可以从中获取文件的修订值数组
- (void)restClient:(DBRestClient*)client loadedRevisions:(NSArray *)revisions forFile:(NSString *)path;
- (void)restClient:(DBRestClient*)client loadRevisionsFailedWithError:(NSError *)error;
例如:
- (void)restClient:(DBRestClient*)client loadedRevisions:(NSArray *)revisions forFile:(NSString *)path {
NSArray *dbRevisionsArray = revisions;
}
- (void)restClient:(DBRestClient*)client loadRevisionsFailedWithError:(NSError *)error{
[[[UIAlertView alloc] initWithTitle:@"Oops!!!" message:@"Please try again." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
}
因此,现在您拥有文件先前版本的元数据数组。
- 要恢复文件[关于恢复],
这里有两种情况:
案例1:是在Dropbox中恢复文件(这里您只在Dropbox中恢复了文件,要在您的APP中恢复文件,您必须像往常一样再次将文件加载到您的数据库中)
案例2:是恢复您的数据库中的文件(*这里您只能在应用程序的数据库中恢复您的文件,但不能在Dropbox中恢复您的文件,要在Dropbox中恢复请按照案例1:*)
案例 1:在 Dropbox 中恢复文件
// 恢复路径中的文件,因为它存在于给定 rev 中,并在恢复后返回恢复文件的元数据
- (void)restoreFile:(NSString *)path toRev:(NSString *)rev;
// 以及它们的委托方法
- (void)restClient:(DBRestClient*)client restoredFile:(DBMetadata *)fileMetadata;
- (void)restClient:(DBRestClient*)client restoreFileFailedWithError:(NSError *)error;
例如:
DBMetadata *metaData = [dbRevisionsArray objectAtIndex:row];
NSString *revStr = metaData.rev;
[[self restClient] restoreFile:@"yourFilePath" toRev:revStr];
然后将文件加载到您的数据库路径..
就是这样 ,。
案例 2:仅在 App 的数据库中恢复文件(不在 Dropbox 中)
/* 这将加载一个文件,因为它存在于给定的 rev */
- (void)loadFile:(NSString *)path atRev:(NSString *)rev intoPath:(NSString *)destPath;
- (void)restClient:(DBRestClient*)client loadedFile:(NSString*)destPath contentType:(NSString*)contentType metadata:(DBMetadata*)metadata;
- (void)restClient:(DBRestClient*)client loadFileFailedWithError:(NSError*)error;
例如: [[self restClient] loadFile:@"yourFile" atRev:revStr intoPath:toYourDatabasePath];