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陆兆禧已经被阿里巴巴集团董事局主席马云褫夺了权限,该消息同时称虽然陆兆禧仍负责集团层面的战略和事物,但事实已处于半退休状态.这个消息告诉我们两件事情,一.马云依然是阿里巴巴的第一掌门人,马云神教在阿里内部将坚持百年不动摇:二.得罪了马 ...
一周排行
  • 在网页以及各种产品设计中,色彩搭配不仅是浪费时间的麻烦事,也是常惹争议的.比如,在网页设计中,就存在"冷色+暖色"."亮色+亮色"或"暗色+暗色"等色彩搭配 ...
  • 本报讯(记者贾中山)今天凌晨有传言称浪新微博用户信息泄露.今天上午11时,浪新微博公关部毛涛涛否认微博用户信息外泄,称网上出现的账户是利用已经公开的一些信息"混搭"出来的,浪新微博将马上发布官方声 ...
  •  网吧网管利用网络黑客软件,种植木马破解网吧实名上网安全管理系统,借此让没有二代证的网民上网.昨日,应城警方透露,该案已告破,该男子被拘留.     自7月1日起,应城全市网吧全部实行二代身份证刷卡上网.当日,应城市 ...
  • 行业saas的未来假设与实践(含PDF下载) 这个题目依然来自于正在凸显着新时代鲜明特质的温州模式启发,当人们还在津津乐道于十年前的温州模式,或者在感概它的未来是否难以为继的时候,互联网之下,温州模式在悄悄地发生着变 ...
  • 中广网北京12月30日消息 据经济之声<天下财经>报道,工信部部长苗圩透露,明年将调整网间结算政策,同时扩大移动电话用户号码携带试验范围.分析认为,随着广电明年作为第四基础电信运营商进入市场竞争,网间结算 ...
  •  “这个网站相当简单,所有你需要做的就是完成X,Y,Z.你看起来应该是技术很好,所以,我相信,你不需要花费太多时间就能把它搭建起来.”   我时不时的就会收到这样的Email.写这些邮件的人几乎都是跟技术不沾边的人, ...
  •     1.        rails中类与对象与SQL中表与行的关系 rails中提供了对象关系映射(ORM),将模型类映射至表,模型类的关联表名是类名小写后的复数形式,如类名Order,对应的表名为orders: ...
  • package main import( "fmt" ) type TestInterface interface{} func main(){ a:=65 // char A 's ascii ...
  • NULL意味着没有或未知的数值,不能使用关系运算符对NULL进行检测,只能使用IS来检测例如: 不论a是什么值, a=NULL永远都返回false,即使a := NULL,为了检测一个标识是否等于NULL,只能这样检 ...
  • 展示JDBC存取ORACLE大型数据对象LOB几种情况的示范类 import java.io.*;import java.util.*;import java.sql.*; public class LobPros{ ...