Grand Central Dispatch、后台处理与应用状态管理
1. Grand Central Dispatch(GCD)的应用与局限
在进行计算时,每个计算方法都会返回我们想要获取的值,因此需要使用 __block 存储修饰符来创建变量,以确保块内部设置的值能被后续运行的代码使用。重新构建并运行应用后,原本需要十秒的操作现在仅需七秒,这得益于同时运行两个计算任务。
不过,GCD 并非万能的。在实际应用中,其加速效果取决于具体的工作类型和可用资源。对于 CPU 密集型计算,只有在有多个 CPU 核心可用时,该技术才能提升性能,并且随着未来 iOS 设备核心数量的增加,性能提升会更明显。而对于同时从多个网络连接获取数据等操作,即使只有一个 CPU,也能实现速度提升。通过在应用中对速度要求较高或响应迟缓的地方谨慎应用 GCD 技术,即使无法真正提升性能,也能为用户提供更好的体验。
2. 后台处理技术
后台处理是处理并发的重要技术,它允许应用在后台运行,在某些情况下,即使用户按下主页按钮后仍可继续运行。但这与现代桌面操作系统的真正多任务处理不同,iOS 设备的内存有限,无法让所有启动的程序一直驻留在系统内存中。后台处理主要是让需要特定系统功能的应用以受限的方式继续运行。
例如,播放网络电台音频流的应用,即使用户切换到其他应用,iOS 也会允许其继续运行,并在控制中心提供标准的暂停和音量控制。如果创建的应用具备以下功能:在用户运行其他应用时播放音频、请求连续位置更新、响应特殊推送请求以从服务器加载新数据或实现网络电话(VoIP)功能,可在应用的 Info.plist 文件中声明
超级会员免费看
订阅专栏 解锁全文
44

被折叠的 条评论
为什么被折叠?



