2017-10-17 58 views
0

我正在將使用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?

回答

0

DBFILESMetadata可以代表文件,文件夾或已刪除的項目。只有文件具有客戶端修改時間,所以clientModified僅在DBFILESFileMetadata上可用,它僅表示文件。

DBFILESFileMetadataDBFILESMetadata的子類。要檢查某個特定的DBFILESMetadata是否爲DBFILESFileMetadata,可以使用isKindOfClass,如here所示。然後你可以將它投射到相關的子類。

此外,請注意,revcontentHash是檢查文件是否更改的更好選項。