@主要用到的类

1PHAssetCollection:图片资源数组(代表着相簿数组)

作用:获取相簿资源数组

示例代码:

//获取相簿资源
PHFetchResult<PHAssetCollection *> *assetCollections = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];

2PHAsset 图片资源 (代表某个相册里所有图片的数组)

作用:获取某个相簿里的相片资源数组

示例代码

//2获得某个相簿中的PHAsset数组
PHFetchOptions *fetchOptions = [[PHFetchOptions alloc] init];
fetchOptions.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"creationDate" ascending:NO]];
PHFetchResult<PHAsset *> *assetArr = [PHAsset fetchAssetsInAssetCollection:assetCollection options:fetchOptions];

3PHImageManager 图片管理者

作用:根据某个图片资源,获取到真实图片

示例代码

//获取图片
[[PHImageManager defaultManager] requestImageForAsset:asset targetSize:size contentMode:PHImageContentModeDefault options:options resultHandler:^(UIImage * img, NSDictionary * _Nullable info)
{
imageobj.image = img;
[resultArr addObject:image];
}];

@经验楼

1对相簿相册进行增删操作,虽然是本地操作,不是延时的网络操作,却也是耗时操作,回调被放到子线程

导致的后果就是,刷新数据后要点一下,才能真正更新界面,需要dispatchAsync一下

2删除刷新界面时,注意还要到结果代理方法去刷新,否则往往刷不到最新的数据

3NSString *const UIImagePickerControllerMediaURL;// 视频的路径

   NSString *const UIImagePickerControllerReferenceURL;// 原始选择项的URL

04-19 20:50