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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53412473

思路:要创建自己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;

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大前端_Web

Vue与React的异同-组件(二)

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

16620
来自专栏陈纪庚

手把手教你实现一个引导动画

最近看了一些文章,知道了实现引导动画的基本原理,所以决定来自己亲手做一个通用的引导动画类。

13210
来自专栏DannyHoo的专栏

两步设置状态栏字体颜色

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

31510
来自专栏企鹅号快讯

react.js 学习笔记

单向数据流驱动,父节点传递到子节点 react最重要是组件 ReactJS官方地址:https://facebook.github.io/react/ GitH...

233100
来自专栏前端说吧

Css中Position定位属性与层级关系

34150
来自专栏JavaEdge

JavaScript Window - 浏览器对象模型浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”。浏览器对象模型 (Browser Object Model)1 Wi

尚无正式标准。由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。

8720
来自专栏冰霜之地

Weex 事件传递的那些事儿

在前两篇文章里面分别谈了Weex如何在Native端初始化的和Weex是如何高效的渲染Native的原生UI的。Native这边还缺一块,那就是Native产生...

26540
来自专栏技术总结

Swift封装-滑出式导航栏

37380
来自专栏非著名程序员

基础篇章:关于 React Native 之 ViewPagerAndroid 组件的讲解

今天我们来讲解一下关于 ViewPager 的使用,它是一个允许子视图左右滚动翻页的容器。而且每一个 ViewPagerAndroid 的子容器会被视作一个单独...

23650
来自专栏向治洪

React Native之ViewPagerAndroid 组件

概述 今天我们来讲解一下关于 ViewPager 的使用,它是一个允许子视图左右滚动翻页的容器。我们知道在Android开发中系统有ViewPager这个组件,...

21980

扫码关注云+社区

领取腾讯云代金券