如果直接使用系统的相册,并不会创建一个属于自己app的相册,所以我们在这里要实现自定义创建属于自己app的相册;
UIImageWriteToSavedPhotosAlbum(_image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
#import "LZPAlbumManager.h"
#import <Photos/Photos.h>
#import <SVProgressHUD/SVProgressHUD.h>
@implementation LZPAlbumManager
+(PHAssetCollection *)getExistAlumWithAssetName:(NSString *)assetName{
PHFetchResult * result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
for (PHAssetCollection * collection in result) {
if ([collection.localizedTitle isEqualToString:assetName]) {
return collection;
}
}
return nil;
}
+(void)saveImageWithAlumAssetName:(NSString *)assetName andImageName:(UIImage *)image{
PHPhotoLibrary * phLi = [PHPhotoLibrary sharedPhotoLibrary];
[phLi performChanges:^{
PHAssetCollectionChangeRequest * assetCollectionChangeRequest;
if ([self getExistAlumWithAssetName:assetName]) {
assetCollectionChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:[self getExistAlumWithAssetName:assetName]];
}else{
assetCollectionChangeRequest = [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:assetName];
}
PHAssetChangeRequest * assetChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
[assetCollectionChangeRequest addAssets:@[assetChangeRequest.placeholderForCreatedAsset ]];
} completionHandler:^(BOOL success, NSError * _Nullable error) {
if (!error) {
[SVProgressHUD showSuccessWithStatus:@"保存成功"];
}else{
[SVProgressHUD showErrorWithStatus:@"保存失败"];
}
}];
}
@end