初识On-Demand Resources

2015/09/17 iOS

今天刚用上Xcode 7,发现target tab出现Resources Tags(苹果文档部分配图是Asset Tags),立马查询一番。

参考On_Demand_Resources_Guide发现Resources Tags是Xcode7新增,主要作用是给资源文件添加标签,集合iOS9新增的APINSBundleResourceRequest,达到按需下载资源的目的。

流程

  1. 确定资源分级,哪些是必须的,哪些是延迟加载的,哪些是可以远程的资源。
  2. Xcode的Resource Tags选项中,添加Tag,并在Prefetched设置优先级,Images.xcassets里的图片也可以设置Tags。
  3. 使用NSBundleResourceRequest根据tags获取资源,它是iOS9新增类,具体参考NSBundleResourceRequest_Class,重点有初始化、下载、优先级、progress属性和结束。
  4. 配置存放资源的服务端。
  5. 通过Xocde Archive工具导出Asset Packs,将asset packs拷贝到自己的服务端。
  6. Xcode Build Settings里设置服务端asset URL

思考

苹果文档中拿了游戏作为例子,在第一关的时候,下载第二关的资源文件,对游戏而言,真实的减少了包的大小。
有大资源的应用可以根据版本使用起来,少量资源文件的应用还想到有哪些使用场景?根据不同情况加载不同的资源包?
On-Demand Resources支持Data fileImageOpenGL shaderSpriteKit *WatchKit complication以及Apple TV Image Stack,感觉Apple在下一盘很大的棋。

其他

一篇翻译一半的中文版资料:按需加载资源开发指南-@BenBeng
实战Demo待补充,还没来得及写。

Search

    Post Directory