ALAssetsLibrary retorna os mesmos ativos depois de adicionar uma nova foto ao rolo da câmera - objetivo c
estou a usarALAssetsLibrary
para enumerar as primeiras 30 fotos nas minhas fotos salvas. Eu criei uma propriedade emAppDelegate
ter acesso aALAssets
toda vez que eu quero, porque a vida deALAssetsLibrary
instância está ligada aALAssets
tempo de vida. Aqui está o meu código:
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);
}];
Como você pode ver, estou adicionando primeiro 30ALAssets
para o meuNSMutableArray
, para ter acesso à imagem em miniatura ou tamanho real. Depois que meu aplicativo faz uma foto, salvo esta foto no rolo da câmera e tento recarregarALAssets
com o mesmo código de quando eu os carrego pela primeira vez. Antes de recarregar, eu removo todos os objetosNSMutableArray
e reinicializandoALAssetsLibrary
. Mas isso não ajuda. Cada vez que eu recebo o mesmoALAssets
. Eu recebo novoALAssets
somente depois de recarregar o app. Como recarregarALAssets
sem recarregar aplicativo?