• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 将照片保存到iOS相册,不要全部保存

[复制链接]
菜鸟教程小白 发表于 2022-12-12 23:56:54 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试从应用中保存照片,创建相册并将照片保存到其中,但无法正常工作。

有时它会保存一张或另一张照片,但不会保存所有照片。

向大家致以最诚挚的问候和感谢!

for(PFObject *pf in imageFilesArray)
{
    PFObject *imageObject = pf;
    PFFile *imageFile = [imageObject objectForKey"image"];

    [imageFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
        if (!error) {
            UIImage *image = [UIImage imageWithData:data];

            [self.library writeImageToSavedPhotosAlbum:[image CGImage] orientation:ALAssetOrientationUp completionBlock:^(NSURL *assetURL, NSError *error) {
                if(assetURL) {
                    [self.library assetForURL:assetURL resultBlock:^(ALAsset *asset) {
                        [self addAsset:asset toGroup"App Album" inLib:self.library];
                        NSLog(@"Adicionado");
                    } failureBlock:^(NSError *error) {
                        NSLog(@"%@",error);
                    }];
                }
            }];
        }
    }];
}
[hud hide:NO];

- (void) addAssetALAsset*)a toGroupNSString*)name inLibALAssetsLibrary*)lib 方法

[lib enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
    if([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:name]) {
        [group addAsset:a];
        *stop = YES;
        NSLog(@"added asset to EXISTING group");
    }
    if(!group) {
        [lib addAssetsGroupAlbumWithName:name resultBlock:^(ALAssetsGroup *group) {
            [group addAsset:a];
            NSLog(@"added asset to NEW group");

        } failureBlock:^(NSError *error) {
            NSLog(@"e: %@", error);
        }];
    }
} failureBlock:^(NSError *error) {
    NSLog(@"e: %@", error);
}];



Best Answer-推荐答案


我已经和某人讨论过这个问题 HERE .

... when there's no photo album available, only part images are saved in a for loop. I tested the code and found that -addAssetsGroupAlbumWithName:resultBlock:failureBlock: will process asynchrony, this method will be dispatched several times when the album is not created (this might take some time).

In this case, you can just create a photo album before image adding process.

[self.assetsLibrary addAssetsGroupAlbumWithName:<your_custom_album_name>
                                    resultBlock:nil
                                   failureBlock:nil];

随意看看这个库:ALAssetsLibrary-CustomPhotoAlbum , 它可能对你有很多帮助;)

关于ios - 将照片保存到iOS相册,不要全部保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24836069/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap