在iOS版谷歌驱动器集成到上传PDF文件
问题描述:
我开发一个应用程序在iOS版8,我已通过安装下面的吊舱集成谷歌驱动器:在iOS版谷歌驱动器集成到上传PDF文件
pod platform :ios, '8.0'
pod 'GoogleAPIClient/Drive', '~> 1.0.0'
pod 'GTMOAuth2', '~> 1.1.0'
当我把代码上传PDF文件,我正在以下错误:
- 属性“标题”不是类型“GTLDriveFile *”
- 使用未声明的标识符“GTLDriveParentReference”的对象中找到。
- 没有已知的选择器'queryForFilesInsertWithObject:uploadParameters:'的类方法。
这是我的代码:
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");
}
}];
答
使用
driveFile.name
而不是driveFile.title
有没有
GTLDriveParentReference
类,所以删除这些行。使用
queryForFilesCreateWithObject
代替queryForFilesInsertWithObject
答
我创造完美的方式上传PDF文件对谷歌推动的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);
}
}];
}
谢谢你解决第一个错误。可以请你让我知道关于其他两个 –
2.没有GTLDriveParentReference类,所以删除这些行。 –
3.使用'queryForFilesCreateWithObject'而不是'queryForFilesInsertWithObject' –