版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337760
思路:要创建自己App的自定义相册,首先要获取系统中的所有自定义相册,看这些自定义相册中是否已经包含了我们自己要创建的自定义相册,如果已经包含自然不用再次创建,如果还没有那么就需要我们自己进行创建。注意:iOS中在创建自定义相册之后并不会给我们返回一个相册的对象,还需要我们自己根据一个标识去系统中获取我们创建的自定义相册。
代码:
// 创建自己要创建的自定义相册
// 创建一个新的相册
// 查看所有的自定义相册
// 先查看是否有自己要创建的自定义相册
// 如果没有自己要创建的自定义相册那么我们就进行创建
NSString * title = NSBundle mainBundle.infoDictionary(NSString *)kCFBundleNameKey;
PHFetchResult<PHAssetCollection *> *collections = PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil;
PHAssetCollection * createCollection = nil; // 最终要获取的自己创建的相册
for (PHAssetCollection * collection in collections) {
if (collection.localizedTitle isEqualToString:title) { // 如果有自己要创建的相册
createCollection = collection;
break;
}
}
if (createCollection == nil) { // 如果没有自己要创建的相册
// 创建自己要创建的相册
NSError * error1 = nil;
__block NSString * createCollectionID = nil;
[PHPhotoLibrary sharedPhotoLibrary performChangesAndWait:^{
NSString * title = NSBundle mainBundle.infoDictionary(NSString *)kCFBundleNameKey;
createCollectionID = PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:title.placeholderForCreatedAssetCollection.localIdentifier;
} error:&error1];
if (error1) {
NSLog(@"创建相册失败...");
}
// 创建相册之后我们还要获取此相册 因为我们要往进存储相片
createCollection = [PHAssetCollection fetchAssetCollectionsWithLocalIdentifiers:@createCollectionID options:nil].firstObject;
}
return createCollection;
}