iOS 获取系统图片
2016-04-15 14:25
387 查看
声明属性
{
NSArray *imageArray;
NSMutableArray *mutableArray;
ALAssetsLibrary *library
}
@property (strong, nonatomic) NSMutableArray *dataSource;
获取系统照片
-(void)getAllPictures
{
imageArray=[[NSArray alloc] init];
mutableArray =[[NSMutableArray alloc]init];
NSMutableArray* assetURLs = [[NSMutableArray alloc] init];
library = [[ALAssetsLibrary alloc] init];
void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) {
if(result != nil) {
if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {
[assetURLs addObject:[result valueForProperty:ALAssetPropertyURLs]];
NSURL *url= (NSURL*) [[result defaultRepresentation]url];
[library assetForURL:url resultBlock:^(ALAsset *asset) {
[mutableArray addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation]fullScreenImage]]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@"dataSource"];
if ([mutableArray count]==count)
{
imageArray=[[NSArray alloc] initWithArray:mutableArray];
NSData *imageList = [NSKeyedArchiver archivedDataWithRootObject:imageArray];
[defaults setObject:imageList forKey:@"dataSource"];
}
}failureBlock:^(NSError *error){ NSLog(@"operation was not successfull!"); } ];
}
}
};
NSMutableArray *assetGroups = [[NSMutableArray alloc] init];
void (^ assetGroupEnumerator) ( ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) {
if(group != nil) {
[group enumerateAssetsUsingBlock:assetEnumerator];
[assetGroups addObject:group];
count=(int)[group numberOfAssets];
}
};
assetGroups = [[NSMutableArray alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:assetGroupEnumerator
failureBlock:^(NSError *error) {NSLog(@"There is an error");}];
}
设置数据源
- (void)initDataSource{
NSArray *images = [[NSUserDefaults standardUserDefaults] objectForKey:@"dataSource"];
self.dataSource = [NSMutableArray arrayWithArray:images];
}
*如果获取照片太多,使用GCD异步进行处理
*设置数据源后得到的数组所包含的类型是UIImage类型,可直接加在Cell上显示
{
NSArray *imageArray;
NSMutableArray *mutableArray;
ALAssetsLibrary *library
}
@property (strong, nonatomic) NSMutableArray *dataSource;
获取系统照片
-(void)getAllPictures
{
imageArray=[[NSArray alloc] init];
mutableArray =[[NSMutableArray alloc]init];
NSMutableArray* assetURLs = [[NSMutableArray alloc] init];
library = [[ALAssetsLibrary alloc] init];
void (^assetEnumerator)( ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) {
if(result != nil) {
if([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {
[assetURLs addObject:[result valueForProperty:ALAssetPropertyURLs]];
NSURL *url= (NSURL*) [[result defaultRepresentation]url];
[library assetForURL:url resultBlock:^(ALAsset *asset) {
[mutableArray addObject:[UIImage imageWithCGImage:[[asset defaultRepresentation]fullScreenImage]]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@"dataSource"];
if ([mutableArray count]==count)
{
imageArray=[[NSArray alloc] initWithArray:mutableArray];
NSData *imageList = [NSKeyedArchiver archivedDataWithRootObject:imageArray];
[defaults setObject:imageList forKey:@"dataSource"];
}
}failureBlock:^(NSError *error){ NSLog(@"operation was not successfull!"); } ];
}
}
};
NSMutableArray *assetGroups = [[NSMutableArray alloc] init];
void (^ assetGroupEnumerator) ( ALAssetsGroup *, BOOL *)= ^(ALAssetsGroup *group, BOOL *stop) {
if(group != nil) {
[group enumerateAssetsUsingBlock:assetEnumerator];
[assetGroups addObject:group];
count=(int)[group numberOfAssets];
}
};
assetGroups = [[NSMutableArray alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:assetGroupEnumerator
failureBlock:^(NSError *error) {NSLog(@"There is an error");}];
}
设置数据源
- (void)initDataSource{
NSArray *images = [[NSUserDefaults standardUserDefaults] objectForKey:@"dataSource"];
self.dataSource = [NSMutableArray arrayWithArray:images];
}
*如果获取照片太多,使用GCD异步进行处理
*设置数据源后得到的数组所包含的类型是UIImage类型,可直接加在Cell上显示
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- [原创]java局域网聊天系统
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 按右键另存图片只能存BMP
- photoshop去除图片上的水印
- Windows 系统组策略应用全攻略(下)第1/3页
- upload上传单张图片
- 图片引发的溢出危机(图)
- 如何进行系统配置
- C#列出当前系统所有正在运行程序的方法
- SqlServer系统数据库的作用深入了解
- Powershell获取系统中所有可停止的服务
- C#实现把彩色图片灰度化代码分享
- C#将图片和字节流互相转换并显示到页面上
- C#监控文件夹并自动给图片文件打水印的方法