在 iOS 6 上使用 AFNetworking 下载文件

2024-02-21

我最近更新到 AFNetworking 2.0。文档说兼容iOS6.0+。当我尝试实现下载方法(图像和视频)时,我正在构建一个 iOS 6.0 应用程序。示例使用

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration];

但是,我收到“使用未声明的标识符‘AFURLSessionManager’”错误。我发现 AFURLSessionManager 使用一个仅在 iOS7 中可用的类。我只是想知道,我可以使用 AFNetworking 在 iOS6 中下载谁?

另外,有什么办法可以查看下载进度吗?

谢谢


您可以使用AFHTTPRequestOperation类在 iOS 6 上执行文件下载。您基本上只需要设置操作的outputStream属性来存储文件和downloadProgressBlock属性来监控进度。

下面的基本方法是在一个类中声明的,该类是AFHTTPRequestOperationManager。当我初始化这个类的实例时,我设置了baseURL财产。

- (AFHTTPRequestOperation *)downloadFileWithContentId:(NSString *)contentId destination:(NSString*)destinationPath {

    NSString *relativeURLString = [NSString stringWithFormat:@"api/library/zipped/%@.zip", contentId];
    NSString *absoluteURLString = [[NSURL URLWithString:relativeURLString relativeToURL:self.baseURL] absoluteString];

    NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"GET" URLString:absoluteURLString parameters:nil];

    void (^successBlock)(AFHTTPRequestOperation *operation, id responseObject) = ^void(AFHTTPRequestOperation *operation, id responseObject) {

    };

    void (^failureBlock)(AFHTTPRequestOperation *operation,  NSError *error) = ^void(AFHTTPRequestOperation *operation,  NSError *error) {

    };

    AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithRequest:request success:successBlock failure:failureBlock];

    NSOutputStream *outputStream = [NSOutputStream outputStreamToFileAtPath:destinationPath append:NO];
    operation.outputStream = outputStream;

    [operation setDownloadProgressBlock:^(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead) {

    }];

    [self.operationQueue addOperation:operation];

    return operation;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 iOS 6 上使用 AFNetworking 下载文件 的相关文章

  • 如何解决 iPhone 中的“命令 /bin/sh 失败,退出代码 1”问题

    我在我的应用程序中使用了可可静态库 当我编译我的库时 出现以下错误 Shell Script invocation error can t open input file Users sijuthomas Library Developer
  • iOS 6 视图加载期间的设备方向处理?

    我有一个标签栏应用程序 我使用的是 XCode 4 3 3 我已经升级到 4 5 2 带有 iOS6 的东西 我的代码在shouldAutorotateToInterfaceOrientation每个视图都会检查当前设备方向并正确放置所有
  • 当被模态视图控制器覆盖时,iOS 6 视图控制器布局在方向更改后不会更新

    我有一个 iPad 应用程序 非常适合 6 之前的 iOS 版本 我的根视图控制器显示一个列表 当您单击列表中的任何项目时 根视图控制器会呈现一个模式视图控制器来显示该项目的详细信息 问题是 我的根视图控制器在横向和纵向上有不同的布局 当不
  • iOS 6 中的分段控件tintColor

    我有一个有 8 段的分段控件 我可以更改整个控件的默认色调 但是我可以为控件中的每个部分设置不同的颜色吗 我找到了一个在 5 1 中使用的教程 其中有一个调用此方法的新类 void setTintColor UIColor color fo
  • iOS7 导航栏上方的状态栏

    我正在使用 iOS7 测试我的应用程序 但状态栏有问题 基本上状态栏出现在导航栏上 如下图所示 我试着打电话给我viewDidLoad self edgesForExtendedLayout UIRectEdgeNone self auto
  • iOS6 在非越狱设备上切换 WiFi

    我正在开发一个内部 iOS 应用程序 不适用于苹果商店 所以我很乐意使用私有 API 并且我希望能够以编程方式打开或关闭 wifi 我想要这样做的原因是 对于某些 WiFi 路由器 每当互联网连接中断时 iPad 就无法恢复 WiFi 不过
  • iOS 6 - 如何获得“释放刷新”动画?就像在邮件中一样?

    在邮件应用程序中 我们现在可以drag the view down and release to refresh 如下图所示 这是我可以从 SDK 获得的标准东西吗 Thanks 使用新的iOS6UIRefreshControl https
  • iOS 6 中的 NSURLConnectionDownloadDelegate ExpectedTotalBytes 为零

    我有一个问题 connection didWriteData totalBytesWritten expectedTotalBytes 的方法NSURLConnection 下载委托在 iOS 6 下 Under iOS 5 模拟器它工作得
  • 让 GNU C 编译器在 iOS 6.x 上运行

    我有一台越狱 evasi0n 第四代 iPad 带有 iOS 6 1 固件 通过 Cydia 我安装了移动终端 版本 520 2 然后 遵循this http iklive org cc compiling on ios 教程中 我已经下载
  • UICollectionView 断言失败

    我在执行时遇到此错误insertItemsAtIndexPaths in UICollectionView 断言失败 UICollectionViewData indexPathForItemAtGlobalIndex SourceCach
  • 如何将 AFHTTPClient、Afnetworking 1.0 迁移到 2.0

    我的问题是我有一个旧代码 我不知道如何更改它 我有 1 个名为 API HTTPClient 的类 我对 2 个方法有问题 因为我不知道如何将它们放入 2 0 中 这 void commandWithParams NSMutableDict
  • 为 iOS6.0 ARMv7 处理器构建 FFMPEG 库

    WARNING 我刚刚被另一位用户告知 在 iOS 上使用 FFMPEG 存在一些法律问题 请在此处留下链接http multinc com 2009 08 24 compatibility Between the iphone app s
  • Xcode 4.5 背景图像 iPhone 4、4s、5

    我在 viewController m 中编写了后台代码 self view backgroundColor UIColor colorWithPatternImage UIImage imageNamed image png 我有不同图片
  • 创建 Android 智能应用横幅

    Android 设备有类似 iOS 6 智能应用横幅的解决方案吗 这是智能应用横幅的代码 从 Chrome 44 Beta 开始 您可以在 Android 版 Chrome 中推送您的应用程序 您网站上的本机应用程序安装横幅 请看下面的答案
  • iPhone中的异步for循环

    for循环看起来像这样 我在视图中编写的确实加载了 因此加载此页面需要更多时间 for int i 3 i lt dataDict objectForKey rss objectForKey channel objectForKey ite
  • AFNetworking 2.0 可达性不起作用

    我在使 AFNetworking Reachability 模块正常工作时遇到一些问题 我已经使用 ReachabilityStatusChangeBlock 设置了 AFHTTPRequestOperationManager 但它从未被调
  • 调试 iOS 应用程序时控制台中的 Webcore NSBeep()?

    当我在 iPhone 上运行 iOS 6 应用程序时 我在控制台中收到这条奇怪的消息 Webcore NSBeep 我在其他帖子中读到 这个 NSBeep 在 iOS 中根本不存在 除此之外 我在我的应用程序中根本没有使用与网络相关的任何内
  • 在 iPhone 5 的横向模式下启动启动画面

    我们的通用应用程序仅适用于横向模式 我们需要为 iPhone 4 和 iPhone 5 添加启动画面 对于 iPhone 5 的肖像 我们使用 email protected cdn cgi l email protection 如何为 i
  • XCode 4.5 给我“SenTestingKit/SenTestKit.h”文件未找到,但适用于 4.4.1

    我刚刚安装了 XCode 4 5 它在我现有的项目之一上给了我一个 SenTestingKit SenTestingKit h 文件未找到错误 此错误仅发生在 XCode 4 5 中 但它在 4 4 1 上编译正常 我已经检查过SenTes
  • 如何使用 AFNetworking 2 按严格的顺序发送请求?

    我正在进行同步以将 sqlite 数据库镜像到服务器数据库 我有一个主从表 其中的详细信息必须尽快发送到服务器 但是 细节 3 可能会先于细节 2 到达 我需要模仿对文档执行的步骤并尊重操作的顺序 当记录保存在本地时 我会发送通知 然后发布

随机推荐