iOS Foundation SDK
NSMapTable
- NSSet/NSMutableSet 拥有所包含对象的strong refrence。
- NSHashTable是mutable可变的,没有不可变的类。
- NSHashTable可以拥有成员的weak refrence;
- NSHashTable可以在输入的时候copy成员。
- NSHashTable可以包含任意的指针,可以使用指针去比较或者hash校验。
NSHashTable
- NSDictionary和NSMutableDictionary会copy keys(这也是导致他们构造的- 时候性能相对低一点的原因),还会持有object的strong引用。
- NSMapTable也都是mutable的,没有不可变类型。
- NSMapTable也可以在input的时候copy它的值。
- NSMapTable能包含任意指针,用指针来进行比较或者hash校验
NSBundleResourceRequest
动态加载资源,减少包大小
- 确定资源分级,哪些是必须的,哪些是延迟加载的,哪些是可以远程的资源。
- Xcode的Resource Tags选项中,添加Tag,并在Prefetched设置优先级,Images.xcassets里的图片也可以设置Tags。
- 使用NSBundleResourceRequest根据tags获取资源,它是iOS9新增类,具体参考NSBundleResourceRequest_Class,重点有初始化、下载、优先级、progress属性和结束。
- 配置存放资源的服务端。
- Xcode Build Settings里设置服务端asset URL。