2016-08-01 11 views
1

Ich entwickle eine app in iOS 8 und ich habe integrierte Google Drive durch die folgenden Schoten Installation hochladen:Google Drive Integration in iOS PDF-Datei

pod platform :ios, '8.0' 

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

Wenn ich Code legen Sie eine PDF-Datei zu laden, ich ich die folgenden Fehler bekommen:

  1. Property 'title' nicht auf Objekt vom Typ
  2. Verwendung von nicht deklarierter Bezeichner 'GTLDriveParentReference' 'GTLDriveFile *' gefunden.
  3. Keine bekannte Klassenmethode für selector 'queryForFilesInsertWithObject: uploadParameters:'.

Dies ist mein 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");    
        } 
       }]; 

Antwort

1
  1. Verwenden driveFile.name statt driveFile.title

  2. Es gibt keine GTLDriveParentReference Klasse, so diese Zeilen entfernen.

  3. Verwenden queryForFilesCreateWithObject statt queryForFilesInsertWithObject

+0

danken Ihnen für die Lösung erster Fehler laden .can Sie mich bitte über andere zwei –

+0

2. Es gibt keine GTLDriveParentReference-Klasse, also entfernen Sie diese Zeilen. –

+0

3. Verwenden Sie 'queryForFilesCreateWithObject' anstelle von' queryForFilesInsertWithObject' –

0

I perfekte Methode erstellt haben PDF-Datei über Google Drive in 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); 
    } 
    }]; 
} 
Verwandte Themen