iOS 照片存到指定文件夹

    ALAssetsLibrary *assetsLibrary = [[ALAssetsLibraryalloc] init];

    NSMutableArray *groups=[[NSMutableArrayalloc]init];

    ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop)

    {

        if (group)

        {

            [groups addObject:group];

        }

        else

        {

            BOOL haveHDRGroup = NO;

            for (ALAssetsGroup *gp in groups)

            {

                NSString *name =[gp valueForProperty:ALAssetsGroupPropertyName];

                if ([name isEqualToString:@"iOSDevTip"])

                {

                    haveHDRGroup = YES;

                }

            }

            if (!haveHDRGroup)

            {

                //do add a group named "XXXX"

                [assetsLibrary addAssetsGroupAlbumWithName:@"iOSDevTip"

                                               resultBlock:^(ALAssetsGroup *group)

                 {

                     [groups addObject:group];

                 }

                                              failureBlock:nil];

                haveHDRGroup = YES;

            }

        }

    };

    //创建相簿

    [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAlbumusingBlock:listGroupBlock failureBlock:nil];

    [selfsaveToAlbumWithMetadata:nilimageData:UIImagePNGRepresentation([UIImageimageNamed:@"2.jpg"]) customAlbumName:@"iOSDevTip"completionBlock:^

     {

         //这里可以创建添加成功的方法

     }

                     failureBlock:^(NSError *error)

     {

         //处理添加失败的方法显示alert让它回到主线程执行,不然那个框框死活不肯弹出来

         dispatch_async(dispatch_get_main_queue(), ^{

             //添加失败一般是由用户不允许应用访问相册造成的,这边可以取出这种情况加以判断一下

             if([error.localizedDescriptionrangeOfString:@"User denied access"].location != NSNotFound ||[error.localizedDescriptionrangeOfString:@"用户拒绝访问"].location!=NSNotFound){

                 UIAlertView *alert=[[UIAlertViewalloc]initWithTitle:error.localizedDescriptionmessage:error.localizedFailureReasondelegate:nilcancelButtonTitle:NSLocalizedString(@"ok", nil) otherButtonTitles: nil];

                 [alert show];

             }

         });

     }];

}

- (void)saveToAlbumWithMetadata:(NSDictionary *)metadata

                      imageData:(NSData *)imageData

                customAlbumName:(NSString *)customAlbumName

                completionBlock:(void (^)(void))completionBlock

                   failureBlock:(void (^)(NSError *error))failureBlock

{

    ALAssetsLibrary *assetsLibrary = [[ALAssetsLibraryalloc] init];

    __weakALAssetsLibrary *weakSelf = assetsLibrary;

    void (^AddAsset)(ALAssetsLibrary *, NSURL *) = ^(ALAssetsLibrary *assetsLibrary, NSURL *assetURL) {

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

            [assetsLibrary enumerateGroupsWithTypes:ALAssetsGroupAllusingBlock:^(ALAssetsGroup *group, BOOL *stop) {

                if ([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:customAlbumName]) {

                    [group addAsset:asset];

                    if (completionBlock) {

                        completionBlock();

                    }

                }

            } failureBlock:^(NSError *error) {

                if (failureBlock) {

                    failureBlock(error);

                }

            }];

        } failureBlock:^(NSError *error) {

            if (failureBlock) {

                failureBlock(error);

            }

        }];

    };

    [assetsLibrary writeImageDataToSavedPhotosAlbum:imageData metadata:metadata completionBlock:^(NSURL *assetURL, NSError *error) {

        if (customAlbumName) {

            [assetsLibrary addAssetsGroupAlbumWithName:customAlbumName resultBlock:^(ALAssetsGroup *group) {

                if (group) {

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

                        [group addAsset:asset];

                        if (completionBlock) {

                            completionBlock();

                        }

                    } failureBlock:^(NSError *error) {

                        if (failureBlock) {

                            failureBlock(error);

                        }

                    }];

                } else {

                    AddAsset(weakSelf, assetURL);

                }

            } failureBlock:^(NSError *error) {

                AddAsset(weakSelf, assetURL);

            }];

        } else {

            if (completionBlock) {

                completionBlock();

            }

        }

    }];


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值