将新照片添加到相机胶卷后,ALAssetsLibrary会返回相同的资源 – 目标c

我正在使用ALAssetsLibrary来枚举我保存的照片中的前30张照片。 我已经在AppDelegate创建了属性,以便在我想要的ALAssets每次都能访问ALAssets ,因为ALAssetsLibrary实例的生命周期与ALAssets生命周期相关联。 这是我的代码:

 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 。 如何在不重新加载应用程序的情况下重新加载ALAssets

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