IOS拍照---》保存到相册----》并且获取照片的ALasset传到相册

来源:互联网 发布:新网域名证书打印 编辑:程序博客网 时间:2024/04/28 04:31

场景:本身想把IOS拍照和相册选照片功能集成到一起,就是把拍照的相片和选相册的相片放到一个collection中,然后上传,并且拍照的照片默认在相册选照片时是选中状态的,所以需要获取拍照的照片ALasset然后传到相册中去,

问题但是获取了相册的Alasset后,在往相册方法传时一直是空,可能是assetURL方法异步的问题,但后来晚上搜罗了下才发现之前写的方法有问题:

-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

    NSString *type = [infoobjectForKey:UIImagePickerControllerMediaType];

    if ([type isEqualToString:@"public.image"])

    {

        //先把图片转成NSData

        UIImage* image = [infoobjectForKey:@"UIImagePickerControllerOriginalImage"];

     ALAssetsLibrary *library  = [[ALAssetsLibraryalloc]init];

        [librarywriteImageToSavedPhotosAlbum:[image CGImage]orientation:(ALAssetOrientation)[imageimageOrientation] completionBlock:^(NSURL *assetURL,NSError *error){

            if (error) {

                // TODO: error handling

            } else {

                [library  assetForURL:assetURL resultBlock:^(ALAsset *asset) {

                    [self.selectPhotosaddObject:asset];

                    [_imageCollection reloadData];

                } failureBlock:^(NSError *error) {

                    

                }];

            }

        }];

    }

}

问题就出现在ALAssetsLibrary *library  = [[ALAssetsLibraryalloc]init]; 这个类的声明上,

这个东东要作为公共的类进行声明,然后问题解决,具体原因不详,还请大牛多多指点。



0 0