1

ドロップボックス フォルダー内のファイルが変更された場合に、ユーザーに通知してほしい。これを行うには、次のコードを使用する必要があります。

[self.restCLient loadDelta: nil];

およびメソッド:

-(void)restClient:(DBRestClient *)client loadedDeltaEntries:(NSArray *)entries reset:(BOOL)shouldReset cursor:(NSString *)cursor hasMore:(BOOL)hasMore{
NSLog(@"WORKED: %@, %@, %c, %c", entries, cursor, hasMore, shouldReset);
 }

 -(void)restClient:(DBRestClient *)client loadDeltaFailedWithError:(NSError *)error{

NSLog(@"THE ERROR: %@", error);
}

これは私が得ている応答のタイプです:

2013-03-06 20:46:33.373 Splash-it[1659:907] WORKED: (
"<DBDeltaEntry: 0x1e2afbf0>",
"<DBDeltaEntry: 0x1e0e4030>",
"<DBDeltaEntry: 0x1e013640>",
"<DBDeltaEntry: 0x1e28e590>"
)

ドロップボックスで何かが変更された場合、どうすればこれを理解できますか?

4

1 に答える 1

2

この質問は少し古いですが、とにかく答えると思いました。:)

DBDeltaEntryオブジェクトのプロパティにアクセスしたいと思うでしょう。

ステップ 1: DBDeltaEntry.h をインポートする

これが Dropbox の残りの部分に含まれていない理由がわかりません (理由を尋ねるために Dropbox にメールを送りました)。これをクラスに追加します。

#import "DBDeltaEntry.h"

ステップ 2: 結果をループする

デリゲート メソッド内で、次のloadedDeltaEntriesように結果をループできます。

for(DBDeltaEntry *file in entries) {
  NSLog(@"Entry name: %@ / Metadata: %@",file.lowercasePath, file.metadata.filename);
}

DBDeltaEntry オブジェクトのメタデータで他にアクセスできるものを確認するには、DBMetadata.h 内を調べます。

BOOL thumbnailExists;
long long totalBytes;
NSDate* lastModifiedDate;
NSDate *clientMtime; // file's mtime for display purposes only
NSString* path;
BOOL isDirectory;
NSArray* contents;
NSString* hash;
NSString* humanReadableSize;
NSString* root;
NSString* icon;
NSString* rev;
long long revision; // Deprecated; will be removed in version 2. Use rev whenever possible
BOOL isDeleted;

NSString *filename;

ステップ 3: 結果を理解する

このエントリのリストは、Dropbox フォルダに対する最新の変更 (変更、削除、または追加されたファイル) を表しています。メソッドでを使用することcursorは重要loadedDeltaEntriesです。これは、認識している変更を追跡するのに役立つからです。カーソルを保存し、各デルタ呼び出しでそれを渡して、Dropbox に「これは、変更に関して私が認識している限りです」と伝えることができます。Dropbox は、そのカーソル以降に変更されたものだけを通知します。

それが役立つことを願っています。

于 2013-08-05T21:38:07.267 に答える