PHotos框架详解
- 判断状态
PHAuthorizationStatusNotDetermined = 0, // 用户还没做出选择
PHAuthorizationStatusRestricted, // 用户拒绝当前应用访问相册
PHAuthorizationStatusDenied, // 用户允许
PHAuthorizationStatusAuthorized // 家长控制
- PHAsset : 一个资源, 比如一张图片\一段视频
PHAssetCollection : 一个相簿 - PHAssetCollection的标识, 利用这个标识可以找到对应的PHAssetCollection对象(相簿对象)
__block NSString *assetCollectionLocalIdentifier = nil;
PHAsset的标识, 利用这个标识可以找到对应的PHAsset对象(图片对象)
```__block NSString *assetLocalIdentifier = nil;```
如果想对"相册"进行修改(增删改), 那么修改代码必须放在[PHPhotoLibrary sharedPhotoLibrary]的performChanges方法的block中
-
使用技巧
保存照片到相机胶卷中,创建图片请求 PHAssetCreationRequest
创建相簿
-
获得创建相簿
- fetchAssetCollectionsWithType 抓取所有相簿,返回相簿集合,然后通过for循环找到相应相簿
for (PHAssetCollection *assetCollection in assetCollections) { if ([assetCollection.localizedTitle isEqualToString:MYAssetCollectionTitle]) { return assetCollection; }
}
- 获得照片 (通过标识获得图片)
PHAsset *asset = [PHAsset fetchAssetsWithLocalIdentifiers:@[assetLocalIdentifier] options:nil].lastObject;
- 添加相机胶卷的照片到相簿请求
PHAssetCollectionChangeRequest *request = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:assetCollection];
- 添加图片到相簿
[request addAssets:@[asset]];