iOS中在系统相册中创建自己App的自定义相册

思路:要创建自己App的自定义相册,首先要获取系统中的所有自定义相册,看这些自定义相册中是否已经包含了我们自己要创建的自定义相册,如果已经包含自然不用再次创建,如果还没有那么就需要我们自己进行创建。注意:iOS中在创建自定义相册之后并不会给我们返回一个相册的对象,还需要我们自己根据一个标识去系统中获取我们创建的自定义相册。

代码:

// 创建自己要创建的自定义相册

- (PHAssetCollection * )createCollection{

    // 创建一个新的相册

    // 查看所有的自定义相册

    // 先查看是否有自己要创建的自定义相册

    // 如果没有自己要创建的自定义相册那么我们就进行创建

    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;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值