2016-08-01 10 views
1

Je développe une application dans iOS 8 et j'ai intégré Google Drive en installant les dosettes suivantes:l'intégration de Google Drive dans iOS pour télécharger le fichier PDF

pod platform :ios, '8.0' 

pod 'GoogleAPIClient/Drive', '~> 1.0.0' 
pod 'GTMOAuth2', '~> 1.1.0' 

Lorsque je place le code pour télécharger un fichier PDF, je je suis obtenir les erreurs suivantes:

  1. 'title' propriété non trouvée sur l'objet de type 'GTLDriveFile *'
  2. utilisation d'identificateur non déclaré "de GTLDriveParentReference.
  3. Aucune méthode de classe connue pour le sélecteur 'queryForFilesInsertWithObject: uploadParameters:'.

Ceci est mon code:

GTLDriveFile *driveFile = [GTLDriveFile object]; 

driveFile.mimeType = @"application/pdf"; 
driveFile.originalFilename = @"database.pdf"; 
driveFile.name = @"database.pdf"; 
driveFile.size = fileSizeNumber; 
NSString *parentId = @"root"; 
driveFile.parents = @[parentId]; 

NSData *fileContent = [[NSData alloc] initWithContentsOfFile:fileName]; 
GTLUploadParameters *uploadParameters = [GTLUploadParameters uploadParametersWithData:fileContent MIMEType:@"application/pdf"]; 


GTLDriveParentReference *parentRef = [GTLDriveParentReference object]; 
parentRef.identifier = folderIdentifier; // identifier property of the folder 
driveFile.parents = @[ parentRef ]; 

GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:driveFile uploadParameters:uploadParameters]; 

[self.service executeQuery:query 
       completionHandler:^(GTLServiceTicket *ticket, 
            GTLDriveFile *updatedFile, 
            NSError *error) { 
        if (error == nil) { 
         NSLog(@"\n\nfile uploaded into google drive\\<my_folder> foler"); 
        } else { 
         NSLog(@"\n\nfile uplod failed google drive\\<my_folder> foler");    
        } 
       }]; 

Répondre

1
  1. Utilisation driveFile.name au lieu de driveFile.title

  2. Il n'y a pas de classe GTLDriveParentReference, donc enlever ces lignes.

  3. Utilisation queryForFilesCreateWithObject au lieu de queryForFilesInsertWithObject

+0

merci pour la résolution 1ère erreur .Peut-vous s'il vous plaît laissez-moi savoir à propos des autres deux –

+0

2. Il n'y a pas de classe GTLDriveParentReference, donc supprimez ces lignes. –

+0

3. Utilisez 'queryForFilesCreateWithObject' au lieu de' queryForFilesInsertWithObject' –

0

J'ai créé méthode idéale pour télécharger le fichier PDF sur Google Drive dans iOS

-(void)sharePDFFileOnGoogleDrive{ 
GTLServiceDrive *driveService; 
driveService = [[GTLServiceDrive alloc] init]; 
driveService.authorizer = self.authToken; 
GTLDriveFile *metadata = [GTLDriveFile object]; 
metadata.originalFilename = @"pdf-sample.pdf"; 
metadata.title = @"PDF file Name"; 
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"pdf-sample" ofType:@"pdf"]; 
NSString *mimeType = @"application/pdf"; 
NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:filePath]; 
GTLUploadParameters *uploadParameters = [GTLUploadParameters uploadParametersWithFileHandle:file 
                        MIMEType:mimeType]; 
GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:metadata 
                uploadParameters:uploadParameters]; 
[driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket, 
                GTLDriveFile *updatedFile, 
                NSError *error) { 
    if (error == nil) { 
     NSLog(@"File %@", updatedFile); 
    } else { 
     NSLog(@"An error occurred: %@", error); 
    } 
    }]; 
}