首页 > 移动平台 > 详细

iOS---如何获取手机的本地照片和相册

时间:2016-01-13 23:19:32      阅读:277      评论:0      收藏:0      [点我收藏+]
    __weak ViewController *weakSelf = self;
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) {
            if (group != nil) {
                [weakSelf.groupArrays addObject:group];
            } else {
                [weakSelf.groupArrays enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
                    [obj enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL  *stop) {
                        if ([result thumbnail] != nil) {
                            // 照片
                            if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]){
                                
//                                NSDate *date= [result valueForProperty:ALAssetPropertyDate];
//                                UIImage *image = [UIImage imageWithCGImage:[result thumbnail]];
//                                NSString *fileName = [[result defaultRepresentation] filename];
//                                NSURL *url = [[result defaultRepresentation] url];
//                                int64_t fileSize = [[result defaultRepresentation] size];
//                                
//                                NSLog(@"date = %@",date);
//                                NSLog(@"fileName = %@",fileName);
//                                NSLog(@"url = %@",url);
//                                NSLog(@"fileSize = %lld",fileSize);
//                                
//                                // UI的更新记得放在主线程,要不然等子线程排队过来都不知道什么年代了,会很慢的
//                                dispatch_async(dispatch_get_main_queue(), ^{
//                                    self.litimgView.image = image;
//                                });
                                NSLog(@"读取到照片了");
                            }
                            // 视频
                            else if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypeVideo] ){
                                
                                NSURL *url = [[result defaultRepresentation] url];
                                 UIImage *image = [UIImage imageWithCGImage:[result thumbnail]];                                NSLog(@"%@",url);
                                    dispatch_async(dispatch_get_main_queue(), ^{
                                        self.litimgView.image = image;
                                    });
                                // 和图片方法类似
                            }
                        }
                    }];
                }];
                
            }
        };
        
        ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error)
        {
            
            NSString *errorMessage = nil;
            
            switch ([error code]) {
                case ALAssetsLibraryAccessUserDeniedError:
                case ALAssetsLibraryAccessGloballyDeniedError:
                    errorMessage = @"用户拒绝访问相册,请在<隐私>中开启";
                    break;
                    
                default:
                    errorMessage = @"Reason unknown.";
                    break;
            }
            
            dispatch_async(dispatch_get_main_queue(), ^{
                UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"错误,无法访问!"
                                                                   message:errorMessage
                                                                  delegate:self
                                                         cancelButtonTitle:@"确定"
                                                         otherButtonTitles:nil, nil];
                [alertView show];
            });
        };
        
        
        ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc]  init];
        [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAll
                                     usingBlock:listGroupBlock failureBlock:failureBlock];
    });

 

iOS---如何获取手机的本地照片和相册

原文:http://www.cnblogs.com/zhendiao/p/5128608.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!