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

Posted

技术标签:

【中文标题】将照片保存到iOS相册,不要全部保存【英文标题】:Save photos to album iOS, do not save all of them 【发布时间】:2014-07-19 02:05:43 【问题描述】:

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

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

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

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) addAsset:(ALAsset*)a toGroup:(NSString*)name inLib:(ALAssetsLibrary*)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);
];

【问题讨论】:

【参考方案1】:

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

...当没有可用的相册时,只有部分图像保存在 for 循环中。我测试了代码,发现 -addAssetsGroupAlbumWithName:resultBlock:failureBlock: 会异步处理,这个方法会在相册没有创建的时候分派几次(这可能需要一些时间)。

在这种情况下,您可以在添加图像之前创建一个相册。

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

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

【讨论】:

以上是关于将照片保存到iOS相册,不要全部保存的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发之保存照片到系统相册(Photo Album)

iOS之保存图片到系统相册和从系统相册选取一张或者多张照片

如何在 iOS 中将照片保存在特定相册中

苹果手机怎么把微信里面的图片保存到相册

如何在 iOS9 中使用 PHPhotolibrary 将照片保存在带有元数据的相册中?

ios怎么把webm保存到相册