适用于iOS的Dropbox v2 api - 您如何获得clientMTim​​e?

问题描述:

我正在将使用Dropbox v1 API构建的应用程序迁移到v2 API。该应用程序需要将源文件夹中的文件同步到应用程序文档文件夹中。当前版本的应用程序使用clientMTim​​e跳过同步未更改的文件。随着V1,我得到了所需的信息 - 在Dropbox的文件夹中的每个文件的具体路径和clientMTim​​e - 做这个...适用于iOS的Dropbox v2 api - 您如何获得clientMTim​​e?

// ============================================================== 
// 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的对象DBFILESMetadata“第2版的iOS API文档包括”路径“,但不要列表clientMtime作为一个包含的属性(他们正在调用'字段')。有没有办法让v2获得clientMTim​​e?

DBFILESMetadata可以代表文件,文件夹或已删除的项目。只有文件具有客户端修改时间,所以clientModified仅在DBFILESFileMetadata上可用,它仅表示文件。

DBFILESFileMetadataDBFILESMetadata的子类。要检查某个特定的DBFILESMetadata是否为DBFILESFileMetadata,可以使用isKindOfClass,如here所示。然后你可以将它投射到相关的子类。

此外,请注意,revcontentHash是检查文件是否更改的更好选项。