アカウントが 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];
}
これで、ファイルの以前のリビジョンのメタデータの配列が得られました。
- ファイルを復元するには【復元について】、
ここでは、次の 2 つのケースがあります。
ケース 1: ファイルを Dropbox に復元する場合 (ここではファイルを Dropbox にのみ復元しました。復元したファイルを APP に保存するには、ファイルを通常どおりデータベースに再度ロードする必要があります)
ケース 2: データベースにファイルを復元することです (*ここでは、ファイルをアプリのデータベースにのみ復元できますが、Dropbox には復元できません。Dropbox に復元するには、ケース 1 に従ってください: *)
ケース 1: Dropbox でファイルを復元する
// 指定されたリビジョンで存在していたパスのファイルを復元し、復元後に復元されたファイルのメタデータを返します
- (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:ファイルをアプリのデータベースにのみ復元する (Dropbox には復元しない)
/* これにより、特定のリビジョンに存在するファイルがロードされます */
- (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];