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陆兆禧已经被阿里巴巴集团董事局主席马云褫夺了权限,该消息同时称虽然陆兆禧仍负责集团层面的战略和事物,但事实已处于半退休状态.这个消息告诉我们两件事情,一.马云依然是阿里巴巴的第一掌门人,马云神教在阿里内部将坚持百年不动摇:二.得罪了马 ...
一周排行
  • 文/贺树龙4月8日下午,北京五洲皇冠国际酒店,京东集团CEO刘强东和优衣库大中华区CEO潘宁身穿合作款UT,共同出席了优衣库入驻京东的签约仪式.此番情景,和6年前优衣库入驻天猫时不无相似.当时,优衣库创始人柳井正.优 ...
  • 1.耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13个人围坐一圈,从第一个人开始循环报数,数到三排除,最后剩下的人就是叛徒 int people[13] = {1,2,3,4,5,6,7, ...
  • 上篇文末已经提及,google分析出的单词可能和大家预想的输入有差别.上文我们通过预先绑定多个语音指令,权益地解决了这个问题.在这一章,我将介绍myvoix.js框架自带的smart learning模块,为解决发音 ...
  • Win7下装Ubuntu双系统遇到的一些问题及解决   最近闲来无事,就想在 Win7 下装个 Ubuntu 双系统,结果搞了两天才搞好(中间重装了一次系统),身为  程序猿出身,实在是汗颜吖~     Win7 下 ...
  • "网络工程师"你是否真的已经倒下了? (一)如果不想保持低月薪,就运用你的技术积极参与公司的业务发展 从最近我们公司招生来看,一个很明显的问题阴魂不散的笼罩在"网络工程师"这个 ...
  • 1030 - Image Is Everything Time limit: 3. seconds   Your new company is building a robot that can hold small ...
  • 在JS中判断浏览器的 类型,估计是每个编辑过页面的开发人员都遇到过的问题.在众多的浏览器产品中,IE.Firefox.Opera.Safari........众多品牌 却标准不一,因此时常需要根据不同的浏览器,甚至相 ...
  •   http://blog.jobbole.com/66887/
  • 看CSDN上有帖,名曰:床前明月光,熊猫在烧香,闲极无聊, 自己也写几个 熊猫烧香之<七里香> 可爱的熊猫,在显示屏上烧香,你说这一次,机器又要玩完:手中的鼠标,在手心里颤颤巍巍,我用三个字形容我遇见了谁 ...
  •  在ASCX中写的. 在CSDN上看了很多的DATAGRID分页问题,当然DATAGRID有自己的分页项,功能是很有限的,我也在CSDN上看了很多自己分页的代码,发现都是用C#写的,我写了一个用ASP.NET中VB语 ...