ios获取系统相簿里边的所有照片

#import <AssetsLibrary/AssetsLibrary.h>


-(void)getImgs{
   
    dispatch_async(dispatch_get_main_queue(), ^{
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
       
       
        ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror){
            NSLog(@"相册访问失败 =%@", [myerror localizedDescription]);
            if ([myerror.localizedDescription rangeOfString:@"Global denied access"].location!=NSNotFound) {
                  NSLog(@"无法访问相册.请在'设置->定位服务'设置为打开状态.");
            }else{
                NSLog(@"相册访问失败.");
            }
        };
       
        ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset *result, NSUInteger index, BOOL *stop){
            if (result!=NULL) {
       
                if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {
                   
                    NSString *urlstr=[NSString stringWithFormat:@"%@",result.defaultRepresentation.url];//图片的url
/*result.defaultRepresentation.fullScreenImage//图片的大图
result.thumbnail                             //图片的缩略图小图
//                    NSRange range1=[urlstr rangeOfString:@"id="];
//                    NSString *resultName=[urlstr substringFromIndex:range1.location+3];
//                    resultName=[resultName stringByReplacingOccurrencesOfString:@"&ext=" withString:@"."];//格式demo:123456.png
*/
                   
                  [self._dataArray addObject:urlstr];
                }
            }
          
        };
        ALAssetsLibraryGroupsEnumerationResultsBlock
        libraryGroupsEnumeration = ^(ALAssetsGroup* group, BOOL* stop){
           
            if (group == nil)
            {
               
            }
           
            if (group!=nil) {
                NSString *g=[NSString stringWithFormat:@"%@",group];//获取相簿的组
                NSLog(@"gg:%@",g);//gg:ALAssetsGroup - Name:Camera Roll, Type:Saved Photos, Assets count:71

                NSString *g1=[g substringFromIndex:16 ] ;
                NSArray *arr=[[NSArray alloc] init];
                arr=[g1 componentsSeparatedByString:@","];
                NSString *g2=[[arr objectAtIndex:0] substringFromIndex:5];
                if ([g2 isEqualToString:@"Camera Roll"]) {
                    g2=@"相机胶卷";
                }
                NSString *groupName=g2;//组的name
               
                [group enumerateAssetsUsingBlock:groupEnumerAtion];
            }
           
        };
       
        ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
        [library enumerateGroupsWithTypes:ALAssetsGroupAll
                               usingBlock:libraryGroupsEnumeration
                             failureBlock:failureblock];
        [library release];     
        [pool release];
    }); 
   
}

//根据图片的url反取图片-----

  ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
NSURL *url=[NSURL URLWithString:urlStr];
[assetLibrary assetForURL:url resultBlock:^(ALAsset *asset)  {
                UIImage *image=[UIImage imageWithCGImage:asset.thumbnail];
                cellImageView.image=image;
          
                }failureBlock:^(NSError *error) {
                    NSLog(@"error=%@",error);
            }
             ];
//--------------------- 


摘自  shijiucdy的专栏 
更多相关文章
  • 苹果在iOS8.1中屏蔽了“日期欺骗”(date trick)漏洞.这一漏洞曾允许老的控制台模拟器和其他未经批准的应用程序在iOS设备上进行安装,而无需越狱.这意味着许多用户喜爱的GBA模拟器将无法使用.iOS应用的开发人员发现了“日期欺骗”漏洞,通过简单地回滚iOS设备上的日期和时间,并通过Saf ...
  • ====== Git 常用命令合集 ====== === 1.Git 文档 ===     Git 中文文档观看地址:http://git.oschina.net/progit/      === 2.Git 基本指令 ===     git config --global user.name // ...
  • C++ Primer 学习笔记_26_操作符重载与转换(1)--可重载/不可重载的操作符.成员函数方式重载.友元函数方式重载 引言:     明智地使用操作符重载可以使类类型的使用像内置类型一样直观! 一.重载的操作符名     像任何其他函数一样,操作符重载函数有一个返回值和一个形参表.形参表必须 ...
  • 首先,要辨析进程与线程的概念: 进程是程序执行的过程,它持有资源和线程,相对于程序本身而言具有动态性. 线程是系统中最小的执行单元,同一个进程中可能有多个线程,它们共享该进程持有的资源.线程的通信也称为线程的交互,方式主要有互斥和同步.同步是指线程之间通过共同协作完成某项工作,线程间具有次序性:互斥 ...
  • 在上篇文章(http://www.cnblogs.com/jerehedu/p/4607599.html#gui)中,根据源码探索了View的绘制过程,过程有三个主要步骤,分别为测量.布局.绘制.系统对绘制已经做了很好的封装,我们主要对测量和布局过程进行分析,看一看android是如何对view进行 ...
  • 阿里巴巴集团CEO陆兆禧文|厨子近日有消息称现任阿里巴巴集团CEO陆兆禧已经被阿里巴巴集团董事局主席马云褫夺了权限,该消息同时称虽然陆兆禧仍负责集团层面的战略和事物,但事实已处于半退休状态.这个消息告诉我们两件事情,一.马云依然是阿里巴巴的第一掌门人,马云神教在阿里内部将坚持百年不动摇:二.得罪了马 ...
一周排行
  • 目前最主要的对抗垃圾邮件的技术是邮件过滤技术(Mail Filter).实时黑名单技术只是其中的一种特定的方法. 邮件过滤按照在邮件系统结构中的角色可以分为三类: MTA(邮件传输代理)过滤 MDA(邮件递交代理)过 ...
  • 我们写好了页面大致的DIV结构后,我们就可以开始细致地对每一个部分进行制作了. 在上一章中我们写入了一些样式,那些样式是为了预览结构而写入的,我们把css.css中的样式全部清除掉,重新写入以下样式代码: Examp ...
  • 283.You set the following parameters in the parameter file and restarted the database: MEMORY_MAX_TARGET=0 M ...
  • 如果想详细了解hbase的安装:http://abloz.com/hbase/book.html 和官网http://hbase.apache.org/ 1.  快速单击安装 在单机安装Hbase的方法.会引导你通过 ...
  • 本报记者 栗泽宇 北京报道"黄牛"把一个装满崭新苹果iPhone 6手机的口袋放到办公桌上,用右手做了个数钱的手势.十分钟后"黄牛"一脸满足地离开这间位于中关村的办公室,留下独 ...
  •   CAS 的安全性是一个非常重要的 Topic . CAS 从 v1 到 v3 ,都很依赖于 SSL ,它假定了这样一个事实,用户在一个非常不安全的网络环境中使用 SSO , Hacker 的 Sniffer 会很 ...
  • 1 //ready()方法的几种相同写法,以下几种代码写法其执行的效果是一样的. 2 3 1.$(document).ready(function(){ 4 //代码部分 5 }) 6 7 2.$(function( ...
  •   1. get是从服务器上获取数据,post是向服务器传送数据. 2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到.post是通过HTTP p ...
  • 对于中国移动来说,苹果非常重要,但是对于苹果来说,中国移动貌似更重要中国是苹果关键的.增长中的"超级市场",中国市场的增长率已超过美国.而能够实现新的突破,恐怕中国移动将是关键.下面就一起来看看吧 ...
  • 问谁又能做到?   一个士兵在练习射击时,五发子弹都脱耙了, 教官很生气, 把枪抢过来连射了五发子弹, 也都脱耙了,然后回头跟士兵说:知道吗?你刚才就是这样做的.   心理学课堂上, 老师兴高采烈,满口飞沫地讲什么叫 ...