我在我的應用程序中使用GoogleDrive API從我的應用程序上傳文件。到目前爲止,我成功地爲上傳所有類型的文件找到了很好的結果。永遠不會上傳數據在谷歌API ios的進度
我按照Google example上傳文件。
我想顯示進度,取決於文件大小,而上傳。我已經通過google中的很多類給出了示例代碼,但沒有太多結果。
遵循的步驟獲得文件上傳進度:
我發現下面的方法在GTLServices.m
- (void)setUploadProgressBlock:(GTLServiceUploadProgressBlock)block {
[uploadProgressBlock_ autorelease];
uploadProgressBlock_ = [block copy];
if (uploadProgressBlock_) {
// As above, we need the fetcher to call us back when bytes are sent.
SEL sentDataSel = @selector(objectFetcher:didSendBytes:totalBytesSent:totalBytesExpectedToSend:);
[[self objectFetcher] setSentDataSelector:sentDataSel];
}
}
之後,在這樣寫的
[self.driveService setUploadProgressBlock:^(GTLServiceTicket *ticket, unsigned long long numberOfBytesRead, unsigned long long dataLength) {
NSLog(@"uploading");
}];
MyViewController.m
上面的NSLog永遠不會因爲這個原因得到原諒,我無法獲得上傳的數據字節。通過調試我遇到了uploadProgressBlock_總是顯示爲零。這可能是由於我的塊處理程序沒有得到執行。
如果我搞錯了,請建議我解決。 如果任何人有想法獲取數據的字節上傳到谷歌驅動器的文件,請給我建議。你的建議對我的工作更有用。
在此先感謝。通過利用我們的人建議
統一的答案:
下面是代碼來獲得上傳進度信息
GTLServiceTicket *uploadTicket= [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,GTLDriveFile *updatedFile,NSError *error)
{
if (error == nil)
{
[self.delegate completedFileUploadingToGoogleDrive];
NSError *fileDeletionError=nil;
[[NSFileManager defaultManager] removeItemAtPath:absalutePath error:&fileDeletionError];
} else
{
[self.delegate errorOccoredWhileUploadingToGoogleDrive:error];
}
}];
[uploadTicket setUploadProgressBlock:^(GTLServiceTicket *ticket, unsigned long long totalBytesWritten, unsigned long long totalBytesExpectedToWrite) {
[self.delegate uploadedFileInfoInKB:(float)totalBytesExpectedToWrite/1024 and:(float)totalBytesWritten/1024];
}];
編碼愉快!
您好阿賈伊,我需要你的幫助的標題和消息,我已經做了谷歌的整合和我已成功上傳音頻文件到谷歌我需要顯示進度條,同時上傳音頻文件到谷歌驅動器,如果你知道這個概念,建議我如何做到這一點? – Ravindhiran 2013-08-27 08:04:01
@Ravindhiran請看看我編輯過的問題,並給出答案的代碼。 – ajay 2013-08-27 10:02:39
+1它的工作正常,謝謝阿賈伊... – Ravindhiran 2013-08-27 11:14:21