ALAssetsLabrary的简单应用

以前不喜欢写一些总结性的文章跟博客,今天在做相册获取时出现了一点点问题,就是在app第一次装上去的时候并没有出现“允许访问”相册的对话框,因此我觉得这些文章或博客还是非常有必要的。
1、访问相册中的图片
通过ALAssetsLabrary来访问所有的保存在本机上的图片、录音、视频文件,这里我们需要的只是图片,只是可以这么写:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    // 通过library来访问所有的保存在本机上的图片、音频、视频
    [library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
        // 通过group访问到所有的图片asset
        [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {
           // 得到所有的asset文件,然后通过asset文件得到image,这里有个问题,需要得到的是高清的image
            UIImage *image = [UIImage imageNamed:[[result defaultRepresentation] fullScreenImage]];
            
        }];
    } failureBlock:^(NSError *error) {
        
    }];

不过以上步骤都是异步过程,因此我们需要使用block来实现在异步过程完成后再实现跳转或赋值,这是重点。

2、访问时,是否会出现“允许访问”对话框
在app访问本机相册时,一般都是会出现“允许访问”对话框的,如果没有则是此app在此前遗留有缓存文件,已经允许或拒绝过了,系统记住了此前用户的操作,如果需要再次提示可删除缓存或reset模拟器。
监听系统允许或拒绝app访问相册的行为,可用以下代码:

/*
     通过ALAuthorizationStatus这个状态来获取app是允许还是拒绝访问相册的行为,它的值有:
     ALAuthorizationStatusNotDetermined = 0, 用户尚未做出了选择这个应用程序的问候
     ALAuthorizationStatusRestricted,        此应用程序没有被授权访问的照片数据。可能是家长控制权限。
     ALAuthorizationStatusDenied,            用户已经明确否认了这一照片数据的应用程序访问.
     ALAuthorizationStatusAuthorized         用户已授权应用访问照片数据.
     */
    ALAuthorizationStatus status = [ALAssetsLibrary authorizationStatus];

这是今天关于ALAssetsLibrary的简单回顾,下次再进一步提升自己。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,812评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,305评论 4 61
  • 置身世间不愿渴死的人, 必须学会从一切杯子里痛饮. 只身人群保持干净的人, 必须懂得用脏水也可以洗身. ——尼采《...
    狗子去哪儿阅读 255评论 0 0
  • 有朋友问我:你年纪也不小了,怎么还不生娃?其实我一直觉得自己是个心理上晚熟的人,小时候老师问班里的所有人:你长大以...
    摄影师June阅读 540评论 0 0
  • 不遗憾 你离开:张幼仪传夏墨 点评此书 书不长,一口气看完了,跟随作者认识了张幼仪。觉得还是值得亲自一看的。 摘 ...
    可爱的外星人阅读 830评论 0 0