适用于iOS的Google drive api下载文件

时间:2014-04-29 12:08:10

标签: ios google-drive-api

我在下面使用此代码下载文件:

- (void)downloadFileContentWithService:(GTLServiceDrive *)service
                                  file:(GTLDriveFile *)file
                       completionBlock:(void (^)(NSData *, NSError *))completionBlock {

    if (file.downloadUrl != nil)
    {
        GTMHTTPFetcher *fetcher =
        [service.fetcherService fetcherWithURLString:file.downloadUrl];

        [fetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error) {
            if (error == nil) {
                // Success.
                completionBlock(data, nil);
            } else {
                NSLog(@"An error occurred: %@", error);
                completionBlock(nil, error);
            }
        }];
    } else {
        completionBlock(nil,
                        [NSError errorWithDomain:NSURLErrorDomain
                                            code:NSURLErrorBadURL
                                        userInfo:nil]);
   }

似乎一切顺利,一段时间后我从服务器检索我的文件。但文件大小约为250 MB的问题。

我的问题是,如果文件太大,应用程序会在设备上崩溃。我们是否需要制定一些限制或类似的东西。我已经下载了pdf文件。

1 个答案:

答案 0 :(得分:0)

应用程序可能崩溃,因为它在下载到内存期间会非常快速地增加内存。您可以直接下载到磁盘以避免这种情况。您似乎可以使用NSFileHandle *downloadFileHandle; final属性来实现此目的。