我希望告知用户Dropbox文件夹中是否有任何文件更改。为此,我必须使用此代码:
[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>"
)
如果我的保管箱中的内容发生了变化,我怎么能理解这个?
答案 0 :(得分: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只会告诉您自该游标以来发生的变化。
我希望有所帮助。