我将使用Dropbox v1 API构建的应用迁移到v2 API。该应用需要将源Dropbox文件夹中的文件同步到app documents文件夹。当前版本的应用程序使用clientMTime跳过同步未更改的文件。使用v1,我得到了所需的信息 - 特别是Dropbox文件夹中每个文件的路径和clientMTime - 通过这样做...
// ==============================================================
// getDBMetadata
// ==============================================================
- (void)getDBMetadata
{
NSString* theOPMLFilesRoot = @"/";
[self.restClient loadMetadata:theOPMLFilesRoot withHash:self.opmlFilesHash];
}
// ==============================================================
// restClient:loadedMetadata:
// ==============================================================
- (void)restClient:(DBRestClient*)client loadedMetadata:(DBMetadata*)metadata
{
self.opmlFilesHash = metadata.hash; // Used to check for changes
for (DBMetadata* __unused theMetadata in metadata.contents) {
LogDebug(@"Path: %@, clientMtime: %@.", theMetadata.path , [theMetadata.clientMtime toStr]);
}
[self synchronizeFilesUsingDBMetadata:metadata];
}
适用于Dropbox对象的v2 iOS API文档' DBFILESMetadata'包括'路径'但是不将clientMtime列为包含的属性(他们正在调用'字段')。有没有办法用v2获取clientMTime?
答案 0 :(得分:0)
DBFILESMetadata
可以表示文件,文件夹或已删除的项目。只有文件的客户端修改时间,因此clientModified
仅在DBFILESFileMetadata
上可用,DBFILESFileMetadata
仅代表文件。
DBFILESMetadata
是DBFILESMetadata
的子类。要检查特定DBFILESFileMetadata
是否为here,您可以使用isKindOfClass
,如图所示rev
。然后,您可以将其强制转换为相关的子类。
另请注意,contentHash
或{{3}}是检查文件是否已更改的更好选项。