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