ios根据assetUrl获取本地图片

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

/**
 *  更新联系人的头像属性.
 *
 *  @param aPerson          要更新其头像的联系人.联系人对象又有一个UIImage类型的avatarImage头像属性和一个NSString类型的nameOfdefaultImg默认图片名称属性
 *  @param assetUrl         assetUrl字符串.一种可能的获取方式:<UIImagePickerControllerDelegate>协议方法
 *                          - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
 *                          的info参数的键UIImagePickerControllerReferenceURL对应的值
 *  @param defaultImageName 默认图片路径.当无法通过assetUrl获取地址时,会尝试使用此图片地址来获取图片文件.
 */
- (void) updateAvaterImageOfPerson: (CFPerson *) aPerson
                    assetUrlString: (NSString *) assetUrl
                  defaultImageName: (NSString *) defaultImageName
{
    if (nil == aPerson) { // 联系人对象为空,直接返回.
        return;
    }
    
    // 是否是应用内置图片?
    aPerson.avatarImage = [UIImage imageNamed: assetUrl];
    if (nil != aPerson.avatarImage) {
        return;
    }
    
    // 是否是本地图片?
    ALAssetsLibrary   *lib = [[[ALAssetsLibrary alloc] init] autorelease];
    [lib assetForURL:[NSURL URLWithString:self.avatarName] resultBlock:^(ALAsset *asset)
     {
         // 使用asset来获取本地图片
         ALAssetRepresentation *assetRep = [asset defaultRepresentation];
         CGImageRef imgRef = [assetRep fullResolutionImage];
         aPerson.avatarImage = [UIImage imageWithCGImage:imgRef
                                                scale:assetRep.scale
                                          orientation:(UIImageOrientation)assetRep.orientation];
         if (nil == aPerson.avatarImage) {// 使用默认图片
             if (nil == defaultImageName) {
                 return;
             }
             
             [aPerson updateAvaterImageOfPerson: aPerson assetUrlString: aPerson.nameOfdefaultImg defaultImageName:nil];

         }
     }
        failureBlock:^(NSError *error)
     {
         // 访问库文件被拒绝,则直接使用默认图片
         if (nil == aPerson.avatarImage) {// 使用默认图片
             if (nil == defaultImageName) {
                 return;
             }
             
             [aPerson updateAvaterImageOfPerson: aPerson assetUrlString: aPerson.nameOfdefaultImg defaultImageName:nil];
             
         }
     }
     ];
}