Créer un dossier avec Google Drive SDK iOS

J'essaie de créer un dossier en utilisant le Google Drive SDK pour iOS. De la documentation de Google Drive ici:

https://developers.google.com/drive/folder

Il dit que la création d'un dossier est similaire à la création d'un 'file' avec un type MIME spécial.

GTLUploadParameters *uploadParameters = nil; self.driveFile = [GTLDriveFile object]; self.driveFile.title = foldername; uploadParameters = [GTLUploadParameters new]; uploadParameters.MIMEType = @"application/vnd.google-apps.folder"; GTLQueryDrive *query = nil; query = [GTLQueryDrive queryForFilesInsertWithObject:self.driveFile uploadParameters:uploadParameters]; [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket, GTLDriveFile *updatedFile, NSError *error) { 

Mais quand j'effectue la requête, j'obtiens:

'NSInternalInconsistencyException', raison: 'upload data et fileHandle s'excluent mutuellement'

Cela suggère que je devrais utiliser l'une des methods d'usine GTLUploadParameters prédéfinies:

 + (GTLUploadParameters *)uploadParametersWithData:(NSData *)data MIMEType:(NSSsortingng *)mimeType; + (GTLUploadParameters *)uploadParametersWithFileHandle:(NSFileHandle *)fileHandle MIMEType:(NSSsortingng *)mimeType; 

Mais ni l'un ni l'autre ne sont appropriés (ou travail, comme j'ai essayé). Est-ce que quelqu'un a réussi à créer des dossiers en utilisant Google Drive sur iOS?

Je fais ça:

  GTLDriveFile *folderObj = [GTLDriveFile object]; folderObj.title = folderName; folderObj.mimeType = @"application/vnd.google-apps.folder"; // To create a folder in a specific parent folder, specify the identifier // of the parent: // _resourceId is the identifier from the parent folder if (_resourceId.length && ![_resourceId isEqualToSsortingng:@"0"]) { GTLDriveParentReference *parentRef = [GTLDriveParentReference object]; parentRef.identifier = _resourceId; folderObj.parents = [NSArray arrayWithObject:parentRef]; } GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folderObj uploadParameters:nil]; // executeQuery:... 

Voici une autre variante plus complète:

 + (void)createFolderWithService:(GTLServiceDrive *)service folderName:(NSSsortingng *)folderName parentId:(NSSsortingng *)parentId completionBlock:(void (^)(GTLServiceTicket *, GTLDriveFile *, NSError *))completionBlock { GTLDriveFile *folderObj = [GTLDriveFile object]; folderObj.title = folderName; folderObj.mimeType = @"application/vnd.google-apps.folder"; if (parentId.length && ![parentId isEqualToSsortingng:@"0"]) { GTLDriveParentReference *parentRef = [GTLDriveParentReference object]; parentRef.identifier = parentId; folderObj.parents = [NSArray arrayWithObject:parentRef]; } GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:folderObj uploadParameters:nil]; [service executeQuery:query completionHandler:completionBlock]; }