IOS同步下载

简介: 在IOS的客户端与服务器交互的时候为的是获取数据,因为有一些持久化数据的方法是在应用程序本地用的。是在没有wifi的情况下才会用到类似数据库Sqlite3一种轻量级的嵌入式数据库)。 那么进入话题下面介绍用通过 NSURLConnection 向服务器发送一个同步的请求来获取数据。

在IOS的客户端与服务器交互的时候为的是获取数据,因为有一些持久化数据的方法是在应用程序本地用的。是在没有wifi的情况下才会用到类似数据库Sqlite3一种轻量级的嵌入式数据库)。

那么进入话题下面介绍用通过 NSURLConnection 向服务器发送一个同步的请求来获取数据。有的人说同步请求一定会造成线程阻塞的问题,这不一定。在主线程发送一个同步请求一定会阻塞线程的,那么在开辟一个新的线程则不会阻塞线程的。就像异步的效果。

NSURLConnection提供了两种方式来实现连接,一种是同步的另一种是异步的,异步的连接将会创建一个新的线程,这个线程将会来负责下载的动作,同步的连接将会堵塞当前的线程,也就是说会造成当前的主线程堵塞,直到这个同步的线程运行完毕将会继续运行主线程。

许多开发者都会认为同步的连接将会堵塞主线程,其实这种观点是错误的。一个同步的连接从它开始运行时就会堵塞主线程。如果你在主线程中创建一个同步连接,没错,主线程会阻塞。但是如果你并不是从主线程开启的一个同步的连接,它将会类似异步的连接一样。因此这种情况并不会堵塞你的主线程。事实上,同步和异步的主要区别就是运行的时候是否会创建一个新的线程,异步的会创建一个新的,而同步的并不会。

image

这段代码在不下载完会出现不会返回的情况。

image

这段代码是发送同步请求的一个方法。

在一些应用程序中应该避免同步请求很大的文件。

可以开辟一个新的线程达到异步的效果。

image

getData这个方法放处理同步请求的过程。

相关文章
|
Swift iOS开发 开发者
iOS - 跳转App Store下载 app 的两种方式
iOS - 跳转App Store下载 app 的两种方式
1898 0
iOS - 跳转App Store下载 app 的两种方式
|
3月前
|
iOS开发
多线程和异步编程:解释 iOS 中的同步和异步任务的概念。
多线程和异步编程:解释 iOS 中的同步和异步任务的概念。
34 1
|
7月前
|
安全 调度 C语言
iOS多线程之GCD-同步、异步、并发、串行、线程组、栅栏函数、信号量等全网最全的总结
iOS多线程之GCD-同步、异步、并发、串行、线程组、栅栏函数、信号量等全网最全的总结
480 1
|
9月前
|
存储 缓存 iOS开发
iOS 轻量化动态图像下载缓存框架实现
日常开发过程中,图片的下载会占用大量的带宽,图片的加载会消耗大量的性能和内存,正确的使用图片显得尤为重要。 同样也经常需要在各类型控件上读取网络图片和处理本地图片,例如:UIImageView、UIBtton、NSImageView、NSButton等等。
iOS 轻量化动态图像下载缓存框架实现
|
11月前
|
iOS开发
iOS下载文件保存到手机文件指定目录
iOS下载文件保存到手机文件指定目录
716 0
|
12月前
|
安全 数据安全/隐私保护 iOS开发
iMazing官网下载安装教程 2023最新版兼容Win和Mac的iOS设备管理软件
iMazing是一款功能强大的iOS设备管理软件,它可以帮助用户备份和管理他们的iPhone、iPad或iPod Touch上的数据。除此之外,它还可以将备份数据转移到新的设备中、管理应用程序、导入和导出媒体文件等。本文将详细介绍iMazing的功能和安全性,并教大家如何使用iMazing来恢复备份数据。
393 0
|
iOS开发 芯片 MacOS
macOS Big Sur 正式发布并已开放下载,支持原生运行 iOS 和 iPadOS App
macOS Big Sur 正式发布并已开放下载,支持原生运行 iOS 和 iPadOS App
148 0
|
Web App开发 弹性计算 Android开发
阿里云无影云桌面客户端下载Win/Mac/iOS/安卓/Web端均支持
阿里云无影客户端下载系统Win/Mac/iOS/安卓/Web端均支持
3538 0
阿里云无影云桌面客户端下载Win/Mac/iOS/安卓/Web端均支持
|
Linux iOS开发 开发者
WIN11自定义版本ios镜像下载教程
WIN11自定义版本ios镜像下载教程
WIN11自定义版本ios镜像下载教程
|
iOS开发
iOS多线程的初步研究-- dispatch同步
GCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。
146 0