Използвам ALAssetsLibrary
за изброяване на активи от библиотеката със снимки, но има един проблем. Ако съм вътре в блока (този за изброяване), мога да получа достъп до миниатюрното изображение без проблем. Ако обаче съхраня ALAsset
в колекция и се опитам да получа достъп до миниатюрното изображение в някакъв момент по-късно, това е 0x00000000.
Защо това? Има ли по-добър начин за достъп до отделни изображения по-късно?
Моят код работи така:
assets = [[NSMutableArray alloc] init];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAll
usingBlock:assetGroupEnumerator
failureBlock:^(NSError *error) {NSLog(@"bla bla bla ... problem");}];
с
void (^assetGroupEnumerator) (ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop)
{
if(group != nil)
{
// extract every asset from goup
[group enumerateAssetsUsingBlock:assetEnumerator];
}
};
и
void (^assetEnumerator) (ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) {
[assets addObject:result];
}