ALAssetsLibrary возвращает те же активы после добавления новой фотографии в рулон камеры - задача c
я используюALAssetsLibrary
перечислить первые 30 фотографий в мои сохраненные фотографии. Я создал собственность вAppDelegate
иметь доступ к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);
}];
Как видите, я добавляю первые 30ALAssets
к моемуNSMutableArray
, чтобы иметь доступ к уменьшенному или полноразмерному изображению. После того, как мое приложение делает фотографию, я сохраняю это фото в фотоаппарат и пытаюсь перезагрузитьALAssets
с тем же кодом, что и при первой загрузке. Перед перезагрузкой я удаляю все объекты изNSMutableArray
и реинициализацияALAssetsLibrary
, Но это не помогает. Каждый раз, когда я получаю то же самоеALAssets
, Я получаю новыйALAssets
только после перезагрузки приложения. Как перезагрузитьALAssets
без перезагрузки приложения?