0
나는 아래 REST 도서관에 대한 구글의 API 클라이언트를 사용하여 내 맥 응용 프로그램 Google 드라이브 API를 구현하고있어

,Google 드라이브 API를위한 오브젝티브 C 일부 파일 모든

- (void)fetchFileList { 

_fileList = nil; 
_fileListFetchError = nil; 


GTLRDriveService *service = self.service; 

GTLRDriveQuery_FilesList *query = [GTLRDriveQuery_FilesList query]; 

// Because GTLRDrive_FileList is derived from GTLCollectionObject and the service 
// property shouldFetchNextPages is enabled, this may do multiple fetches to 
// retrieve all items in the file list. 


query.fields = @"kind,nextPageToken,files(mimeType,id,kind,name,webViewLink,thumbnailLink,trashed)"; 



_fileListTicket = [service executeQuery:query 
         completionHandler:^(GTLRServiceTicket *callbackTicket, 
              GTLRDrive_FileList *fileList, 
              NSError *callbackError) { 
          // Callback 
          _fileList = fileList; 
          _fileListFetchError = callbackError; 
          _fileListTicket = nil; 



          NSLog(@"%@", fileList); 


         }]; 
} 

여기 반환 값을 반환

GTLRDrive_FileList 0x6080002404e0 : {종류 : "드라이브 #의의 fileList"파일 : [5]}

가 내 드라이브에 7 개 항목이 있지만 그것은 단지 5 개 항목을 반환?

답변

0

귀하의 다음 페이지 토큰과 관련이있을 수 있습니다. 그것은 특정 페이지의 결과 만 리턴했으며 모든 결과는 리턴하지 않았습니다.

확인 this docs :

는 때때로 쿼리 는 한 번에 한 페이지를 반환되는 결과의 큰 숫자를 반환 할 수 있습니다. 결과 개체에 nextPageToken 문자열이 포함되어 있으면 쿼리를 다시 실행할 수 있습니다. 새 쿼리의 pageToken 속성으로 반환 토큰을 제공하고 다음 결과 세트를 가져옵니다. next35Token 문자열을 포함하지 않는 마지막 페이지에 도달 할 때까지이 작업을 반복 할 수 있습니다.

GTLServiceDrive *drive = ...; 
GTLQueryDrive *query = [GTLQueryDrive queryForFilesList]; 
query.q = search; 
[drive executeQuery:query completionHandler:^(GTLServiceTicket *ticket, 
               GTLDriveFileList *fileList, 
               NSError *error) { 
    if (error == nil) { 
    NSLog(@"Have results"); 
    // Iterate over fileList.files array 
    } else { 
    NSLog(@"An error occurred: %@", error); 
    } 
}]; 

는 파일을 제대로 가져하는 방법에 iOS Quickstart에서 드라이브 샘플로 시험 인쇄를 해보십시오. 다음은 스 니펫입니다.

/ Construct a query to get names and IDs of 10 files using the Google Drive API. 
- (void)fetchFiles { 
    self.output.text = @"Getting files..."; 
    GTLQueryDrive *query = 
    [GTLQueryDrive queryForFilesList]; 
    query.pageSize = 10; 
    query.fields = @"nextPageToken, files(id, name)"; 
    [self.service executeQuery:query 
        delegate:self 
      didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)]; 
} 
+0

부팅 후 응용 프로그램의 첫 번째 실행 (시작 클릭)에만 7 개의 항목이 올바르게 반환됩니다! 이제 두 번째 실행 후 0을 반환합니다 !!!!! 이것은 두통을줍니다 !! – webmastx

+0

noogui, 나는 동일한 코드를 사용하고 있으며 처음 실행 한 후에 만 ​​문제가 발생한다는 것을 알았습니다! (실행 -> 중지 -> 다시 실행) – webmastx