URL 加载系统执行的队列式异步请求位于队列中, 可能位于后台线程上. 在 iOS 5.0 中增加
队列式异步请求只有在知道返回的数据不会超出应用的内存时才使用队列式异步请求. 记住, 整个响应体都会位于代码的内存中. 如果响应很大, 那么可能导致应用出现内存溢出问题. 此外, 当代码将响应解析为所需的格式时可能需要复制返回的数据, 这会导致内存增加一倍
为所有操作使用单一的 NSOperationQueue, 根据服务器的能为以及预期的网络状况控制当前操作的最大数据
在处理返回的数据前验证错误与调用返回的 HTTP 响应状态码
如果源 URL 需要验证, 那么不要使用队列异步请求, 因为该功能并不支持对认证请求做出响应. 如果服务需要这种认证, 那么可以将 BASIC 认证信息放在提供给请求的 URL 中
如果需要向用户提供进度条, 那么不要使用队列式异步请求, 因为请求是原子的, 无法提供中间的进度指示信息
如果需要通过流解析器来渐进解析响应数据, 那么不要使用队列式异步请求.
如果请求在完成前需要取消, 那么不要使用队列式异步请求
网友评论