NSBundleResourceRequest
2016-03-15 15:42
405 查看
Initializing a Resource Request
Accessing the Configuration
Requesting Resources
Setting the Download Priority
Tracking Progress
NSBundleResourceRequest是iOS9的新特性,主要用于按需加载资源的下载控制。按需加载资源是由App Store托管的内容,它和下载的app bundle是分开的。app请求一系列按需加载资源,而下载和存储资源是由操作系统来管理。这些资源可以是除可执行代码外,bundle支持的任何类型。
支持的类型
按需加载资源的好处有如下几点:
缩小app大小;
懒加载资源文件;
很少使用的资源放在远端;
内购的资源放在远端。
按需加载资源的生命周期如下所示:
可以用如下方式快速创建tag
在Resource Tags选项卡的Prefetched界面下,可以把tag分配给三个预获取优先级分类的其中一个。
初始安装tag(Initial install tags)。只有在初始安装tag下载到设备后,app才能启动。这些资源会在下载app时一起下载。这部分资源的大小会包括在App Store中app的安装包大小。如果这些资源从来没有被NSBundleResourceRequest对象获取过,就有可能被清理掉。
按顺序预获取tag(Prefetch tag order)。在app安装后会开始下载tag。tag会按照此处指定的顺序来下载。
按需下载(Dowloaded only on demand)。当app请求一个tag,且tag没有缓存时,才会下载该tag。
On-Demand Resources Essentials
NSBundle Class Reference
GitHub:https://github.com/937447974/Blog
Accessing the Configuration
Requesting Resources
Setting the Download Priority
Tracking Progress
NSBundleResourceRequest是iOS9的新特性,主要用于按需加载资源的下载控制。按需加载资源是由App Store托管的内容,它和下载的app bundle是分开的。app请求一系列按需加载资源,而下载和存储资源是由操作系统来管理。这些资源可以是除可执行代码外,bundle支持的任何类型。
支持的类型
Type | Asset catalog | File |
---|---|---|
Data file | ✓ | ✓ |
Image | ✓ | ✓ |
OpenGL shader | – | ✓ |
SpriteKit particle | – | ✓ |
SpriteKit scene | – | ✓ |
SpriteKit texture atlas | ✓ | ✓ |
Apple TV Image Stack | ✓ | ✓ |
缩小app大小;
懒加载资源文件;
很少使用的资源放在远端;
内购的资源放在远端。
按需加载资源的生命周期如下所示:
可以用如下方式快速创建tag
在Resource Tags选项卡的Prefetched界面下,可以把tag分配给三个预获取优先级分类的其中一个。
初始安装tag(Initial install tags)。只有在初始安装tag下载到设备后,app才能启动。这些资源会在下载app时一起下载。这部分资源的大小会包括在App Store中app的安装包大小。如果这些资源从来没有被NSBundleResourceRequest对象获取过,就有可能被清理掉。
按顺序预获取tag(Prefetch tag order)。在app安装后会开始下载tag。tag会按照此处指定的顺序来下载。
按需下载(Dowloaded only on demand)。当app请求一个tag,且tag没有缓存时,才会下载该tag。
1 Initializing a Resource Request
/// 初始化NSBundleResourceRequest /// /// - parameter tags : 相关tags /// /// - returns: NSBundleResourceRequest public convenience init(tags: Set<String>) /// 初始化NSBundleResourceRequest /// /// - parameter tags : 相关tags /// - parameter bundle : 包 /// /// - returns: NSBundleResourceRequest public init(tags: Set<String>, bundle: NSBundle)
2 Accessing the Configuration
/// 加载的tags public var tags: Set<String> { get } /// 对应的NSBundle public var bundle: NSBundle { get }
3 Requesting Resources
// 开始加载资源 public func beginAccessingResourcesWithCompletionHandler(completionHandler: (NSError?) -> Void) // 资源是否加载完成 public func conditionallyBeginAccessingResourcesWithCompletionHandler(completionHandler: (Bool) -> Void) // 取消加载资源 public func endAccessingResources()
4 Setting the Download Priority
/// 加载级别(0...1,默认0.5) public var loadingPriority: Double
5 Tracking Progress
// 资源加载管理器 public var progress: NSProgress { get }
Appendix
Sample Code
SwiftRelated Documentation
NSBundleResourceRequest Class ReferenceOn-Demand Resources Essentials
NSBundle Class Reference
Revision History
时间 | 描述 |
---|---|
2016-03-15 | 博文完成 |
Copyright
CSDN:http://blog.csdn.net/y550918116jGitHub:https://github.com/937447974/Blog
相关文章推荐
- iOS 7及以上,随时改变UIStatusBar颜色
- iOS边练边学--UITableViewCell的常见属性设置
- iOS开发之UITextView,设置textView的行间距及placeholder
- ERROR: '/usr/local/bin' is not writable - it is required for Homebrew, try 'brew doctor' to fix it!
- Android Volley完全解析(三),定制自己的Request
- 从零开始学习EasyDarwin之无锁队列
- com.android.build.api.transform.TransformException: com.android.builder.packaging.DuplicateFileExcep
- Java 工具类 ToStringBuilder
- 给按钮UIButton设置图片,setBackGroundImage和setImage两个方法的区别
- quilt.mk源码
- 创建请求集
- UIKeyboard 键盘
- Java.util.concurrent包学习(一) BlockingQueue接口
- 错误将UIViewController当做UITableViewController来用
- OCiOS开发:UIKit 力学(UIDynamics)(一)
- ElasticSearch2.1 基于空间位置geo_query距离计算
- iOS边练边学--UITableView性能优化之三种方式循环利用
- 向ArcSDE导入数据出现(ORA-00001: Unique contraint (SDE.GDB_OC_PKC) violated错误
- UIPasteboard 粘贴板
- 关于UIUICollectionView