#ios5 #alassetslibrary
#ios5 #alassetslibrary
Вопрос:
Мой код работал на OS 4.3, но с 5 я получаю предупреждения относительно ALAssetsGroup для ALAssetsGroup я не получаю никаких методов для этого, поэтому я получаю экземпляр, не найденный для перечисления см. Код
void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop)
{
if(result != nil)
{
[assets addObject:result];
}
};
// Create instance of the Assets Library.
void (^assetGroupEnumerator)( ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop) {
if(group != nil)
{
[group enumerateAssetsUsingBlock:assetEnumerator];
}
};
assets = [[NSMutableArray alloc] init];
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library enumerateGroupsWithTypes:ALAssetsGroupAlbum
usingBlock:assetGroupEnumerator
failureBlock: ^(NSError *error) {
NSLog(@"failureBlock:%@",error);
}];
Любая помощь будет оценена
Спасибо
Ответ №1:
начиная с iOS 5, другие методы библиотеки ресурсов являются асинхронными и должны вызываться из основного потока. Убедитесь, что вы вызываете свой 2-й блок, перечисляющий группу из основного потока, используя dispatch_async в основной очереди.
Приветствия,
Hendrik