【问题标题】:Dropbox v2 api for iOS - how do you get clientMTime?适用于 iOS 的 Dropbox v2 api - 如何获取 clientMTim​​e?
【发布时间】:2017-10-17 21:49:31
【问题描述】:

我正在将使用 Dropbox v1 API 构建的应用迁移到 v2 API。该应用程序需要将源保管箱文件夹中的文件同步到应用程序文档文件夹。当前版本的应用程序使用 clientMTim​​e 来跳过未更改的同步文件。使用 v1,我获得了所需的信息——特别是 Dropbox 文件夹中每个文件的路径和 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”的 v2 iOS API 文档包含“路径”,但将 clientMtime 列为包含属性(他们称之为“字段”)。有没有办法使用 v2 获取 clientMTim​​e?

【问题讨论】:

    标签: ios dropbox-api


    【解决方案1】:

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

    DBFILESFileMetadataDBFILESMetadata 的子类。要检查特定的DBFILESMetadata 是否为DBFILESFileMetadata,您可以使用isKindOfClass,如here 所示。然后,您可以将其转换为相关的子类。

    另外,请注意revcontentHash 是检查文件是否已更改的更好选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-12
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多