写这篇文章的时间已经有点晚了,目前iOS支持的最低版本已经为iOS8了,而AssetsLibrary这个框架在iOS9已经支持了改为Photos代替使用(稍后会写文章介绍Photos),然而这并不影响,我们记录它的演化过程,AssetsLibrary框架也很小,思路很清晰整理一下以备回顾。
AssetsLibrary主要有五个类组成ALAssetsLibrary、ALAssetsGroup、ALAsset、ALAssetRepresentation、ALAssetsFilter,它们的关系大概是这样的(箭头从属关系):
AssetsLibrary包含了所有的图片和视频
ALAssetsGroup可以理解为相册,里面可以是图片也可以是视频,可以通过它增加某个相册的资源。
ALAssetsFilter为ALAssetsGroup设置过滤条件,返回图片、视频或者两者都返回。
ALAsset一个包装对象,它包装的可能是图片也可能是视频。
ALAssetRepresentation 是对ALAsset的详细描述,有很多属性例如:URL,对象的size,thumbnail缩略图,文件名等都可以获取到。
下面直接上代码分别介绍:
一、ALAssetsLibrary
使用ALAssetsLibrary是需要授权的,尤其是xcode8以后需要在info.plist里面添加key和描述如:
Privacy - Photo Library Usage Description : 是否允许xxx使用您的相册?
//ALAsset方向 NS_ENUM_DEPRECATED_IOS(4_0, 9_0)