0

Ich bin die Implementierung von Google Drive API für meine Mac-Anwendung mit Google-API-Client für REST-Bibliothek unter,Google Drive API für Objective-C eine Datei zurück nicht all

- (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); 


         }]; 
} 

hier den Rückgabewert

GTLRDrive_FileList 0x6080002404e0: {Art: "drive # Filelist" Dateien: [5]}

es gibt 7 Punkte auf meinem Laufwerk, aber es gibt nur 5 Artikel?

Antwort

0

Es kann etwas mit Ihrem nextPageToken zu tun haben. Es gab nur das Ergebnis einer bestimmten Seite zurück, nicht alle.

prüfen this docs:

Manchmal ist eine Abfrage kann eine große Anzahl von Ergebnisse angezeigt, die sind eine Seite zu einem Zeitpunkt zurückgeführt. Wenn ein Ergebnisobjekt eine nextPageToken-Zeichenfolge enthält, können Sie die Abfrage erneut ausführen. Geben Sie das zurückgegebene Token als pageToken-Eigenschaft der neuen Abfrage an und rufen Sie die nächste Ergebnismenge ab. Sie können dies wiederholen, bis Sie die letzte Seite erreichen, die keine nextPageToken-Zeichenfolge enthält.

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); 
    } 
}]; 

die Antriebs Probe Versuchen Sie, aus dem iOS Quickstart auf, wie man richtig Dateien holen. Hier ein Schnipsel:

+0

Es gibt 7 Elemente korrekt NUR der erste Lauf der Anwendung (Klicken Sie auf Ausführen) seit dem Start! Jetzt gibt der zweite Lauf und danach 0 zurück !!!!! Das gibt mir Kopfschmerzen !! – webmastx

+0

noogui, Ich benutze den gleichen Code und beachten Sie das Problem tritt nur nach dem ersten Lauf! (Ausführen -> Stopp -> erneut ausführen) – webmastx