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陆兆禧已经被阿里巴巴集团董事局主席马云褫夺了权限,该消息同时称虽然陆兆禧仍负责集团层面的战略和事物,但事实已处于半退休状态.这个消息告诉我们两件事情,一.马云依然是阿里巴巴的第一掌门人,马云神教在阿里内部将坚持百年不动摇:二.得罪了马 ...
一周排行
  • 这次更新,实现了自动识别Nand或MMC/SD启动(环境变量统一存放于Nandflash中),统一SD及Nand启动模式的nandflash驱动均为8bit HW ECC校验,并调整部分源码文件的结构. 您可以从下面 ...
  • 两个XMPP实体交互的过程是这样的:打开一个TCP连接,TCP上建立一个XML Stream,协商一些安全机制和功能在,之后双方就 可以通过互相发送XML节来交换信息.XMPP是一种多用途的通用协议,并不只用于聊天应 ...
  •  可实现的是架构,空谈是概念 So don't tell me the concepts show me the code!  “不懂编码的架构师不是好架构师” 好架构师都是超级代码控.   代码是最好的老师   从 ...
  • 易网科技讯 6月17日消息,2011软件和信息服务业政策与趋势发布会今天在大连世博广场7号会议室举行.易网科技作为重要合作媒体在现场做直播报道. 以下为商务部服务贸易和商贸服务业司处长徐兴峰先生做主题演讲. 徐兴峰: ...
  • js 实现键盘记录 兼容FireFox和IE 7 3 作者:羽殇仁 转载请注明出处,谢谢. 本篇文章是我的第一百篇blog文章,恭喜一下! 这两天突然想弄弄js的键盘记录,所以就小研究了一下 ...
  • MicroJS 想快速获得一段javascript代码吗?MicorJs是一个全新的网站,其目的是为最常用的任务提供JavaScript代码片段,如:Ajax,JSON,DOM,面向对象的JavaScript,等等. ...
  •  在实例测试前先确保hadoop 启动正确   Master.Hadoop: word 1[[email protected] input]$ jps6736 Jps6036 NameNode4697 SecondaryNa ...
  • Stateless Spring Security Part 2: Stateless Authentication Posted on October 6, 2014 by Robbert van Waveren ...
  •   用C/C++调用Java的方法我没有去研究,也不知道从哪里开始研究,对Linux我了解到很少,希望有朋友可以给些资料,我的水平很差,望大家多多包涵.   这个例子是别人的代码,我忘记从来里弄来的了,先对原作者表示 ...
  • 吉庆街,都说武汉的这条街是在池莉笔下出名的,管他,东西好吃就成.下雪了,外出办事的我只好坐公车回家.车里人很少,和车外繁忙的街道形成鲜明对比.被抛到脑后的,满是夜色和着急回家顶着雪花行色匆匆的人们.经过小城里最繁华的 ...