目标 C:下载带进度条的文件 [重复]

2023-12-09

我正在尝试放置一个在下载过程中同步的进度条。 我的应用程序现在可以使用此代码下载文件......

    pdfData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://webaddress.com/pro/download/file.pdf"]];

    NSString *resourcePDFPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle]  resourcePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]];

    pdfFilePath = [resourcePDFPath stringByAppendingPathComponent:@"myPDF.pdf"];

    [pdfData writeToFile:pdfFilePath atomically:YES];

在此代码的过程中,应用程序在下载过程中停止,这正常吗? 现在我想要的是在下载时的停止时间内放置一个进度条。

我尝试查看在网上找到的代码,但我有点困惑,我想我需要一个逐步解释清楚的参考。


Using AF网络,

here 进度是 UIProgressview

#import <AFNetworking/AFNetworking.h>//add to the header of class

-(void)downloadShowingProgress
{
   progress.progress = 0.0;

    currentURL=@"http://www.selab.isti.cnr.it/ws-mate/example.pdf";


    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:currentURL]];
    AFURLConnectionOperation *operation =   [[AFHTTPRequestOperation alloc] initWithRequest:request];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"MY_FILENAME_WITH_EXTENTION.pdf"];
    operation.outputStream = [NSOutputStream outputStreamToFileAtPath:filePath append:NO];

    [operation setDownloadProgressBlock:^(NSUInteger bytesRead, NSUInteger totalBytesRead, NSUInteger totalBytesExpectedToRead) {
        progress.progress = (float)totalBytesRead / totalBytesExpectedToRead;

    }];

    [operation setCompletionBlock:^{
        NSLog(@"downloadComplete!");

    }];
    [operation start];

}

使用 NSURLConnection

-(void)downloadWithNsurlconnection
{

    NSURL *url = [NSURL URLWithString:currentURL];
    NSURLRequest *theRequest = [NSURLRequest requestWithURL:url         cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];
    receivedData = [[NSMutableData alloc] initWithLength:0];
    NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self     startImmediately:YES];


}


- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    progress.hidden = NO;
    [receivedData setLength:0];
    expectedBytes = [response expectedContentLength];
}

- (void) connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    [receivedData appendData:data];
    float progressive = (float)[receivedData length] / (float)expectedBytes;
    [progress setProgress:progressive];


}

- (void) connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

}

- (NSCachedURLResponse *) connection:(NSURLConnection *)connection willCacheResponse:    (NSCachedURLResponse *)cachedResponse {
    return nil;
}

- (void) connectionDidFinishLoading:(NSURLConnection *)connection {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:[currentURL stringByAppendingString:@".mp3"]];
    NSLog(@"Succeeded! Received %d bytes of data",[receivedData length]);
    [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    [receivedData writeToFile:pdfPath atomically:YES];
    progress.hidden = YES;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标 C:下载带进度条的文件 [重复] 的相关文章

  • 开发者可以在 Windows 应用程序中使用 iCloud 吗?

    开发人员可以使用 Apple 的 iCloud API 在 Mac OS X 和 iOS 上的不同版本的应用程序之间同步应用程序数据 如果开发人员拥有 Windows 版本的应用程序 该版本是否也可以使用 iCloud 将应用程序数据与 M
  • 如何在 Firebase Analytics 事件中报告参数

    我用过Fabric with iOS在此之前 在同一分析事件中报告自定义参数非常容易 如下所示 Answers logCustomEvent withName saved border customAttributes image inde
  • 如何清除代码中的 NSLog 输出?

    有没有办法清除代码中的控制台输出 thanks 我喜欢的快捷方式 Simply USE K Keyboard Shortcut when you want to clear the NSLOG Data
  • 从 IOS 应用程序注销的完美方法是什么?

    下面的代码可以工作 但有一个错误 场景是 我首先登录进入应用程序系统 登录成功后 应用程序将设置 UserDefaults UserId 之后 我可以使用存储的 UserId 导航应用程序视图 一旦我进入设置和选项卡注销 这将清除 User
  • 在 IOS 中从 iPhone 删除资产(图片或视频)

    我正在开发一个 Iphone 应用程序 我可以使用 Assetslibrary 枚举资产并将它们加载到表视图中 用户可以在应用程序中删除一行 图片 视频 但如何直接从我的应用程序更新 Iphone 相册 否则 刷新时 表视图将重新加载之前删
  • 为什么 Objective-C 方法名称的最后一部分必须带有参数(当有多个部分时)?

    在 Objective C 中 您不能声明最后一个组件不带参数的方法名称 例如 以下内容是非法的 void take id theMoney andRun void take id yourMedicine andDontComplain
  • 更改导航项(栏)的背景颜色

    有没有一种简单的方法可以更改视图顶部导航项的背景颜色 我有一个基于导航的应用程序 我只希望一个视图获得另一种背景颜色 我主要使用 IB 创建视图 我找到了以下解决方案 未测试 float r 10 float g 55 float b 13
  • 重叠的装载机圆

    我试图重现苹果为应用程序 活动 制作的重叠圆圈 见下图 如果您使用标准贝塞尔路径 起始 结束位置将仅在 0 到 2PI 之间产生影响 例如 如果您尝试填充 4PI 即使使用一些阴影 则无法模拟重叠加载 如何制作类似于苹果解决方案的东西来创建
  • 如何右对齐 UILabel?

    Remark 实施 myLabel textAlignment right does not解决了我的问题 这不是我所要求的 我想要实现的是让标签对齐右对齐 为了更清楚地说明 这就是如何left对齐外观 就是这样justify对齐外观 if
  • iOS UITableViewCell cell.imageView 设置圆角

    嘿我正在尝试设置cell imageView s cornerRadius 但似乎不起作用 cell imageView layer cornerRadius 9 它会起作用还是我应该添加自定义UIImageView在我的牢房里有圆角吗 我
  • 从 iOS 13 开始安排 iOS 后台任务

    我正在实现用于更新数据的BackgroundTasks 框架 但我遇到了以下问题 无法计划刷新App 错误域 BGTaskSchedulerErrorDomain代码 1 空 无法安排数据提取 Error Domain BGTaskSche
  • 查找已用应用程序名称的捆绑包/开发人员

    我正在尝试将应用程序上传到应用程序商店并收到以下错误 很容易理解 The App Name you have entered has already been used 该应用程序不在 iTunes 上 有什么方法可以找出谁拥有该应用程序或
  • 从 Python 下载/安装 Windows 更新

    我正在编写一个脚本来自动安装 Windows 更新 我可以将其部署在多台计算机上 这样我就不必担心手动更新它们 我想用 Python 编写这个 但找不到任何关于如何完成此操作的信息 我需要知道如何搜索更新 下载更新并从 python 脚本安
  • 不明白 Swift 中的闭包示例

    我正在尝试了解 swift 和闭包 我被这个例子困住了 numbers map number Int gt Int in let result 3 number return result 什么是 number Int gt Int 它是一
  • 如何用图片替换UITableView?

    我有一个 UITableView 默认为空白 直到用户编辑并向其添加数据 我想显示一张带有说明的图像 直到用户编辑它为止 图片的大小非常适合导航栏和标签栏之间 有没有办法以编程方式执行此操作 您可以使用removeFromSuperview
  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择
  • 高效创建 x 层深度的嵌套 for 循环

    这可能是一件简单的事情 但我需要创建一个循环结构 使其循环 y x 次以创建 x 和 y 的所有可能组合 例如 如果有 4 个 x 每个 x 有 2 个 y 我想做这样的事情 for int a 0 a lt y a for int b 0
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部
  • 企业发行版在 Swift 应用程序中与 iOS8 配合不佳

    我在使用 swift 应用程序在 iOS 8 设备上运行 Enterprise 版本时遇到问题 如果我使用非企业帐户进行代码签名 它似乎工作正常 有人遇到这个问题吗 以下是我在尝试使用企业帐户运行构建以进行协同设计时在 iOS 设备上收到的
  • iOS 电池监控 Swift

    我已将监控设置为启用 但模拟器和设备中的电池电量仍然为 1 UIDevice currentDevice batteryMonitoringEnabled true var level UIDevice currentDevice batt

随机推荐

  • 由于twisted-iocpsupport,将 Django 应用程序部署到 Heroku 时出现问题

    我正在尝试将我制作的 Django 应用程序部署到 Heroku 上 最终弄清楚如何将其推送到 git 后 我 尝试这样做 git push heroku master 但随后它无法推送 因为它无法构建 twisted iocpsuppor
  • nginx 错误连接到 php5-fpm.sock 失败(13:权限被拒绝)

    我将 nginx 更新为1 4 7和 PHP 到5 5 12 之后我得到了502错误 在我更新之前一切正常 nginx 错误 log 2014 05 03 13 27 41 crit 4202 0 1 connect to unix var
  • Gprof:特定功能时间[重复]

    这个问题在这里已经有答案了 我想找出程序中特定函数所花费的时间 为此 我正在使用 gprof 我使用以下命令来获取特定函数的时间 但日志文件仍然显示程序中存在的所有函数的结果 请在这方面帮助我 gprof F FunctionName Ex
  • LoadLibrary:找不到指定的程序

    我需要在 Windows 2003 服务器中提取一些有关系统进程的信息 是的 在 2019 年 我用 python 编写了该代码 并使用auto py to exe 当我运行 exe文件在服务器上 我收到一条错误消息 LoadLibrary
  • 如何在 Eclipse 中使用 glassfish 适配器进行热部署

    有没有人获得 glassfish v3 适配器来与 Eclipse 一起使用 而无需每次代码更改时都重新启动 我尝试进行设置 但每次我更改任何文件时适配器都会 重新发布 这非常烦人 最多需要 3 分钟 并且会锁定我的机器一秒钟 我必须记住在
  • 批处理文件:在FOR循环中跳过以_开头的文件夹

    我想排除所有以 无需在排除文本文件中列出每个配置文件 是否有可能做到这一点 echo off set Target D backup for f tokens I in dir a d h b SystemDrive Users do if
  • 通过简单的适配器在imageview中显示位图图像

    我从网址获取图像 我在列表视图中使用图像视图 我想将位图图像列表添加到列表项的每一行中 我使用 SimpleAdapter 但图像视图显示空白 我的代码如下 ArrayList
  • 使用 c-driver 按索引更新 mongo 数组元素

    为了更新 mongo 数组的元素 我使用了如下语法 set a 0 1238 a 1 402 或者 更准确地说 我正在使用我认为与其等效的 C 驱动程序函数调用 这似乎工作正常 但是当我查看 MongoHub 中的对象时 我看到 a 0 1
  • Python - Pandas 用字符串删除行

    在我的数据集中 我有几行包含字符 我只需要包含所有整数的行 最好的方法是什么 以下数据集 例如 我想删除第 2 行和第 3 行 因为它们分别包含 051A 04A 和 08B 1 2017 0 321 3 20 42 18 2 051A 0
  • 如何编写 PostSharp Invoke 方面来简化跨线程控制更新

    当我想跨线程更新控件时 我通常会这样做 this Invoke MethodInvoker delegate SomeProcedure 建议的方法实际上是调用要更新的特定控件的调用程序 但 99 的情况下 表单 即我的示例中的 this
  • Python 中的 OpenCV:“ImportError:DLL 加载失败”

    关于这个主题已经有很多问题了 但我没有找到关于 DLL not found 传统问题的任何令人满意的答案 我使用的是通过 Anaconda 3 安装的 Python 3 5 我已经用 pip 安装了 官方 opencv python 3 2
  • 根据 WooCommerce 中的总额自动应用百分比或固定购物车折扣

    我正在尝试在客户的 WooCommerce 网站上设置优惠券 以便在购物车总数低于上限金额或固定金额等于或大于上限金额时应用百分比折扣 假设购物车总数的上限为 200 如果购物车总数低于此上限 则应用 10 的折扣 但如果购物车总数为 20
  • Maven 阴影插件是我的 jar 无法在服务器中工作的罪魁祸首吗

    我开发了一个java应用程序并将其制作为jar文件 我使用捆绑了所有依赖项mvn clean packagemaven shade 插件 我的问题是 尽管该应用程序在我的本地计算机上运行良好 但在服务器环境中却无法运行 每当我运行它时 我都
  • Flask 发布到同一页面

    I have from flask import Flask render template import datetime app Flask name app route def hello now datetime datetime
  • 首次购买者将商品添加到购物车

    我有一家 WooCommerce 商店 我正在尝试将特定产品添加到 Woocommerce 购物车中 仅供首次购买者使用 我已经有以下 php 代码 但由于某种原因 它不会起作用 这是我的代码 add action woocommerce
  • ScriptManager 必须出现在任何需要它的控件之前

    我创建了一个新的 ASP NET Web 应用程序 调试后出现服务器错误 ID 为 WaitingPopup1 的控件需要页面上的 ScriptManager ScriptManager 必须出现在任何需要它的控件之前 我是 ASP NET
  • 获取 .model.json 作为字符串

    我想知道是否有一种简单的方法可以通过 AEM 中的 sling 内容导出器的结果获取字符串 在我当前的用例中 我需要组件的 htl 文件中的组件 model json 输出的内容 并且发送额外的请求显然不是一个好主意 关于如何获取数据有任何
  • 读取大文本文件中的行数 VB6

    我有大小为 230MB 的文本文件 我想计算该文件的行数 我试过 Scripting FileSystemOblect 但它已经从记忆中消失了 请帮忙 Thanks 正常的 Windows 换行符是 CRLF 因此您可以对 LF 进行计数
  • Reactor 和 Webflux 中的 Mono 链超时算子到底测量了什么?

    我正在使用 Spring Webflux 并试图理解 Monos 链的超时概念 例如 有一系列 Mono 调用 myService firstOperation then myService secondOperation then myS
  • 目标 C:下载带进度条的文件 [重复]

    这个问题在这里已经有答案了 我正在尝试放置一个在下载过程中同步的进度条 我的应用程序现在可以使用此代码下载文件 pdfData NSData alloc initWithContentsOfURL NSURL URLWithString h