ALAssetsLibrary
을 사용하여 저장된 사진의 처음 30 장을 열거합니다. 에 자산을 만들었으므로 평생 에 액세스 할 수 있습니다. 왜냐하면 평생 ALAssetsLibrary
인스턴스가 평생 ALAssets
에 연결되어 있기 때문입니다. 당신이 볼 수 있듯이ALAssetsLibrary는 카메라 롤에 새 사진을 추가 한 후 동일한 에셋을 반환합니다. - 목표 c
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
-ALAssets
30 첫 번째 썸네일에 대한 액세스 또는 fullsize 이미지를 가지고 추가 해요 : 다음은 내 코드입니다. 내 앱이 사진을 만든 후에이 사진을 카메라 롤에 저장하고 처음로드 할 때와 동일한 코드로 ALAssets
을 다시로드 해 봅니다. 다시로드하기 전에 NSMutableArray
에서 모든 객체를 제거하고 ALAssetsLibrary
을 다시 초기화합니다. 그러나 이것은 도움이되지 않습니다. 내가 똑같을 때마다 ALAssets
. 앱을 다시로드 한 후에 만 새로운 ALAssets
이 표시됩니다. 앱을 다시로드하지 않고 ALAssets
을 다시로드하는 방법은 무엇입니까?
감사합니다. –