ALAsset - достъп до миниатюрата по-късно

Използвам 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];

}

person georgij    schedule 06.07.2013    source източник
comment
Покажете вашия код. По-специално как съхранявате активите и как управлявате библиотеката с активи.   -  person Wain    schedule 06.07.2013


Отговори (1)


Открих, че проблемът е (всички до ранни) версии на ALAssetsLibrary. Не трябва да се отказвам от него, докато имам нужда от миниатюри и каквото и да е друго и просто да запазя препратката към него.

person georgij    schedule 06.07.2013