首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ALAssetsLibrary在将新照片添加到相机胶卷后返回相同的资产-目标c

ALAssetsLibrary在将新照片添加到相机胶卷后返回相同的资产-目标c
EN

Stack Overflow用户
提问于 2012-10-24 03:56:24
回答 1查看 2.2K关注 0票数 1

我正在使用ALAssetsLibrary枚举我保存的照片中的前30张照片。我在AppDelegate中创建了一个属性,让它可以在我需要的时候随时访问ALAssets,因为ALAssetsLibrary实例的生命周期与ALAssets的生命周期紧密相关。下面是我的代码:

代码语言:javascript
复制
if(!_savedAssets) _savedAssets = [[NSMutableArray alloc] init];
else [_savedAssets removeAllObjects];

if(appDelegate.library)
{
    [appDelegate.library release];
    [appDelegate setLibrary:nil];
}

appDelegate.library = [ALAssetsLibrary new];
__block int count = 0;
[appDelegate.library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {
    NSLog(@"%d",group.numberOfAssets);
    if(count>30) *stop = YES;
    [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *needToStop) {
        NSLog(@"%d", index);
        if(count<30 && result)
        {
            UIImage *image = [UIImage imageWithCGImage:result.thumbnail];
            [_savedAssets addObject:result];
            [self performSelectorOnMainThread:@selector(imageManipulation:) withObject:image waitUntilDone:NO];
            count++;

        }
        else
          *needToStop = YES;

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

如你所见,我正在向我的NSMutableArray添加前30个ALAssets,以访问缩略图或全尺寸图像。在我的应用程序生成照片后,我将这张照片保存到相机胶卷中,并尝试使用与第一次加载时相同的代码重新加载我的ALAssets。在重新加载之前,我从NSMutableArray中删除了所有对象,并重新初始化ALAssetsLibrary。但这并没有帮助。每次我都得到相同的ALAssets。我只有在重新加载应用程序后才能获得新的ALAssets。如何在不重新加载app的情况下重新加载ALAssets

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-24 20:42:26

注册ALAssetsLibraryChangedNotification的观察者。当通知触发时,重新加载资产。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13038225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档