NSURLConnection 和 NSURLSession 最大的区别是什么

2024-01-05

NSURL会话 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/UsingNSURLSession.html#//apple_ref/doc/uid/TP40013509-SW1是新的网络 SDKNSURL连接 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/URLLoadingSystem/Tasks/UsingNSURLConnection.html#//apple_ref/doc/uid/20001836-BAJEAIEE来自苹果。第三个旧选择是 CFNetwork。

这里的问题是找出它们之间最大的区别,以理解为什么苹果会这样发展。

Thanks


整个模型是不同的。 NSURLSession 的设计假设您将有很多需要类似配置(标准标头集等)的请求,如果这样做的话,生活会变得更加轻松。

NSURLSession 还提供对后台下载的支持,这使得您可以在应用程序未运行时(或在 iOS 上处于后台时)继续下载资源。对于某些用例来说,这也是一个重大胜利。

NSURLSession 还提供相关请求的分组,可以轻松取消与特定工作单元关联的所有请求,例如在用户关闭窗口或选项卡时取消与加载网页关联的所有加载。

NSURLSession 还提供了更好的接口来使用块请求数据,因为它允许您将它们与委托方法结合起来进行自定义身份验证处理、重定向处理等,而使用 NSURLConnection 时,如果您突然意识到需要做这些事情,您必须重构您的代码以不使用基于块的回调。

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

NSURLConnection 和 NSURLSession 最大的区别是什么 的相关文章

  • iOS 8 中的自定义键盘可以添加新字符吗?

    在 iOS 8 中 Apple 为开发人员提供了创建自定义键盘的能力 在里面文档 https developer apple com library prerelease ios documentation General Conceptu
  • 在 Swift 中执行 POST 请求

    我正在尝试做这样的事情 NSMutableURLRequest request NSMutableURLRequest requestWithURL NSURL URLWithString http google com request H
  • 如何获取 NSURLConnection 中的默认用户代理字符串?

    我想将文本附加到默认的用户代理标头NSURLConnection 我知道怎么做更改 NSURLConnection 的用户代理 https stackoverflow com questions 1532206 changing the u
  • 分段表单上传和 NSURLSession.uploadTaskWithRequest 之间的区别

    来自网络编程领域 我非常喜欢使用多部分表单请求来上传文件 然而 在iOS中 我们有一个东西叫做NSURLSession用方法uploadTaskWithRequest 这似乎是调用进行图像上传等操作的方法 您能解释一下这两种方法之间的区别吗
  • 键盘扩展:是否可以继承 iOS 现有键盘的功能和 UI?

    自定义键盘扩展 https developer apple com library ios documentation General Conceptual ExtensibilityPG Keyboard html是 iOS 8 中的一个
  • iOS后台Location不发送http请求

    我的应用程序需要在后台跟踪用户位置 但无法发送 获取 请求 当应用程序到达前台时 http 请求会立即发送 我正在使用 RestKit 来处理所有网络请求 并且遵循本教程 http www mindsizzlers com 2011 07
  • 如何确定 NSURLSessionTask 请求何时开始?

    I use NSURLSessionTask我正在尝试监视我的一些 HTTP 请求需要多长时间 我可以监视什么委托方法 或其他方法 NSURLSessionTask实际上提出了最初的请求 如果这是一个NSURLConnection里面一个N
  • 使用 Swift 解析框架

    有人尝试过将 Parse Framework 与 swift 一起使用吗 只要添加桥接文件 您就可以使用 swift 和 Objective C 代码 这是我的查询 从 Parse 返回的 对象 数组正确地包含了我的所有数据 但该方法在将
  • NSURLSessionDownloadTask 出现存储几乎已满磁盘警告的问题

    我在使用 NSURLSessionDownloadTask 处理 ios 上的 空间不足 磁盘已满 错误时遇到问题 如果由于应用程序中完成下载而导致磁盘已满 我会接到电话 URLSession 会话 NSURLSession 任务 NSUR
  • 我可以对图像进行动画处理吗 iOS8 LaunchScreen.xib

    问题 有没有方法可以为针对 iOS 8 1 部署的 Xcode 6 项目的 LaunchScreen xib 文件中的任何内容设置动画 Context 我正在寻找制作简单的动画来传达活动或在用户等待时分散他们的注意力 例子 加载栏 活动指示
  • 如何检测 iOS 8 上的包含应用程序是否启用了应用程序扩展?

    我正在 iOS 8 beta 上开发一个自定义键盘 我想告诉用户如果我的自定义键盘未启用 如何在包含应用程序中启用它 有什么方法可以检测应用程序扩展是否已启用 首先让我们设置一些常量 以便于彼此理解 包含应用程序 安装扩展并保存扩展二进制文
  • Swift 中的 quitFirstResponder

    我怎样才能用Apple的新语言实现它 Objective C 代码 void touchesBegan NSSet touches withEvent UIEvent event for UIView view in self view s
  • iOS NSURLSession,如何在didCompleteWithError中重试

    我想在我的服务器上尝试一次调用 直到成功为止 我想每 30 秒尝试一次 所以我使用 NSURLSession 进行通话 NSURLSessionDownloadTask task self session downloadTaskWithR
  • NSURLCache 不缓存

    我正在使用 Xcode 6 1 6A1030 iOS7 和 iOS8 模拟器 NSURLCache 似乎没有缓存任何东西 我使用 Cache Control 标头 我的服务器返回带有 max age 6000 的 Cache Control
  • 企业发行版在 Swift 应用程序中与 iOS8 配合不佳

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

    在我的应用程序中 必须从 iPad Gallery 出售 UIImage 并将其转换为 PDF 并保存在服务器端 我可以选择图像并将其发送到服务器端 但后端说 pdf 为空 空数据 我还在控制台中看到警告 错误 发现扩展时遇到 发现 错误
  • 应用程序终止和设备重启后 PushKit 通知未到达

    借助 PushKit 我的 iOS 应用程序即使已关闭也能成功接收 VoIP 推送通知 失败时只有一个条件 如果我通过标准任务切换器刷出 终止 我的应用程序并重新启动我的设备 起初 我在重新启动设备后就遇到了这个问题 如这个问题所述 排除启
  • UIAlertController 的弹出框变形

    我使用 UIToolbar 中的 UIAlertController 和首选操作表样式向用户呈现选项列表 呈现时 弹出框的箭头被切断 其角以两种不同的半径圆化 据我所知 我用来展示它的代码直接来自文档 UIAlertController a
  • iPhone 6模拟器,隐藏键盘问题

    iPhone 6 是否有一些新的方式 屏幕外 硬按钮 来重新打开隐藏的软键盘 我没有可以测试的物理设备 但我在 iPhone 6 模拟器中看到了一些在 iPad 或 iPhone 5 中看不到的新东西 iPhone 6 在横向视图中现在有一
  • 重用 NSURLConnection 实例

    我正在 iPhone 上使用 NSURLConnection 实例从服务器请求数据 该服务器像往常一样由委托管理 这些请求非常频繁 也许每 2 分钟一次 并且有一个共同且固定的 URL 而不是看到每次下载后释放 NSURLConnectio

随机推荐

  • 为什么“sail up”命令没有构建我的 laravel docker 容器?

    我正在尝试 Laravel Sail 因为我已经成功使用 Laradock 几年了 并希望简化我的开发环境设置 我使用的是 Windows 10 64 使用 WSL 2 安装了 Docker Desktop 3 0 并且我的 Laravel
  • 如何在刷新后让用户保持登录到 Firebase 应用程序?

    我有一个内置于 firebase 和 Angular 的应用程序 并且希望能够在刷新页面后保持用户登录 现在我有一个登录屏幕 其中有两个绑定到控制器的基本输入字段 this email this pass this emessage thi
  • Spring Security有Ip地址问题

    我在控制器中有一个使用以下配置的方法 RequestMapping value encore userName token method RequestMethod GET ResponseBody PreAuthorize hasIpAd
  • 使用新的 Google Jetpack 组件的最低 Android API 级别是多少

    我已经开始学习 RxJava 我知道有一些新的 Google 组件 如 LiveData 数据绑定等 我想知道使用它们的最低 Android API 级别是多少 我可以在 21 或 23 等较旧的 API 中利用它们吗 直接从文档中http
  • 无法使用 EPPlus 删除工作表

    我正在使用这段代码 ExcelPackage pck new ExcelPackage newFile var wk pck Workbook Worksheets SingleOrDefault x gt x Name Content p
  • jquery validate 添加方法来验证日期时间

    我正在使用我找到的日期时间选择器插件here http trentrichardson com examples timepicker 效果很好 现在唯一的问题是它破坏了包含的标准日期验证jquery 验证插件 http docs jque
  • 在调试器中查看 DLL 中的 pimpl

    我使用 pimpl 习惯用法来隐藏接口的实现细节 以便我可以采取某种 ABI 保护措施 我不太熟悉 MS 的来龙去脉 我的大部分开发生涯都使用 Linux 我无法从调试器检查窗口查看 pimpl 的内部 我的类型仅扩展至 impl 的原始指
  • Google App Engine ( Java ):URL 提取响应太大问题

    我正在尝试在谷歌应用程序上构建某种网络服务 现在的问题是 我需要从网站获取数据 HTML 抓取 该请求如下所示 URL url new URL p url con HttpURLConnection url openConnection I
  • 计算循环空间复杂度的基础是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 想象一下 您循环 n 次 并且每次迭代都会创建一个空间 n 的字符串 其范围仅在该迭代内 因此在下一次迭代中不再可访问 我会说我使用 O
  • 在插入大量数据时关闭node.js中的mongodb连接

    我正在尝试编写一个程序来解析 iis 日志数据并将其插入到 mongodb 中 文件不是那么大 大约 600 行 试图说服我的管理 Nodejs 和 mongodb 比 net 和 sql server 更好 在nodejs中看一下下面的代
  • 在 React Bootstrap 中设置 Form.Check(复选框)控件的样式

    我是反应和引导程序的初学者 我想知道 如何设计 Form Check 复选框 的样式 以便可以用更好的样式覆盖默认的外观和感觉 比如开关或任何其他外观和感觉 这就是我尝试过的 我使用了 css 样式 但它没有按预期工作 MyForm js
  • iOS 5 JSON 解析导致 Cocoa 错误 3840

    我很难在 iOS 5 上解析下面的 JSON 字符串 States Name Arizona Cities Name Phoenix Name California Cities Name Orange County Name Rivers
  • 如何访问Android应用程序的classes.dex?

    当活动启动时 系统会加载classes dex文件并开始执行指令 我需要对当前活动正在执行的同一应用程序的classes dex 进行只读访问 在网上搜索了几个小时后 我只能推断Android安全系统不允许访问应用程序沙箱 但是 我需要对c
  • WebMethod 自动将类对象返回为 JSON

    谁能解释一下 ASP NET 如何处理从类对象到 WebMethods 中的 JSON 对象的转换 例如 您有以下 WebMethod 它返回一个Person object WebMethod public static Person Ge
  • scala:跟踪隐式选择和其他代码魔法

    当试图弄清楚库如何工作时 隐式转换会令人困惑 例如 查看像 val foo Foo 1 这样的表达式 什么将 1 转换为 Foo 是否可以指示 scala 库 或 REPL 打印出在计算表达式时正在执行的代码路径 您可以将 Xprint t
  • 正确计算发送到死信SQS队列的消息数

    我希望 grafana 报告在任何给定时间死信队列中有多少消息 由于最终在此队列中的消息的性质 将评估和解析最终在此队列中的消息 我已将 grafana 配置为读取NumberOfMessagesSent from a dead lette
  • 方法在哪里?堆栈还是堆?

    我知道方法的局部变量和参数位于堆栈中 但我无法弄清楚在 Java 中方法实际上位于哪里 如果我声明任何 Thread 对象 例如 Thread t new Thread t start 所以这意味着我已经创建了除主方法之外的单独的方法调用
  • 找不到 TypeScript 编译器

    我正在使用 Visual Studio 2012 和 TypeScript 版本 0 9 5 我也在使用 web Essentials 2 8 当我尝试保存 TypeScript 文件后 它显示 编译错误 详细信息请参见错误列表 找不到 T
  • 取代 Soft-deprecated funs() 的独特挑战

    问题 我有一个仅由数字数据类型的变量组成的 DataFrame 我有一个例程 过去在检查 DataFrame 中的每个变量是否有统计异常值并用 NA 值替换任何已识别的异常值方面做得很好 然而 这个例程利用了最近被软弃用的 funs 研究过
  • NSURLConnection 和 NSURLSession 最大的区别是什么

    NSURL会话 https developer apple com library ios documentation Cocoa Conceptual URLLoadingSystem Articles UsingNSURLSession