Этот код отлично работал в iOS 7, но в iOS 8.1 все активы, расположенные в альбоме «Мой фотопоток», равны нулю изнутри блока результатов. (The failureBlock не вызывается.) Обычные альбомы и общие альбомы работают нормально.ALAssetsLibrary assetForURL: всегда возвращает ноль для фотографий в «My Photo Stream» в iOS 8.1
Я попытался принятый ответ от: Error trying to assigning __block ALAsset from inside assetForURL:resultBlock:
То есть, я держу ссылку на объект ALAssetsLibrary, прислушиваясь к ALAssetsLibraryChangedNotification
событие (которое не бывает кстати, ну да ладно.) Я сделал уверен, что у моего приложения есть разрешение на доступ к фотографиям, я нахожусь в wi-fi, я вижу, что миниатюры фотографий отлично подходят для моего стола. Просто когда я пытаюсь загрузить их с assetForURL:
, они всегда ноль.
// example URL: assets-library://asset/asset.JPG?id=1ECB69B9-DC7A-45A7-B135-F43317D3412C&ext=JPG
[self.library assetForURL:[NSURL URLWithString:url] resultBlock:^(ALAsset *asset) {
NSLog(@"Asset: %@", asset); // nil :(
} failureBlock:^(NSError *error) {
NSLog(@"Failure, wahhh!");
}];
Неужели кто-нибудь еще видит эту проблему?
Хотя это не идеально, это действительно делает трюк, спасибо тонну! Не быть чрезмерно nitpicky, но похоже, что 'item.url' должен быть просто« url »правильным? И нам, вероятно, нужно будет вызвать блок успеха, который пройдет в ALAsset. Еще раз спасибо! – taber
У меня такая же проблема как для Moment, так и для My Photo Stream, хотя решение выше не работает ... перечисляющие группы ничего не делают ... даже если я изменил ALAssetsGroupPhotoStream на ALAssetsGroupAll – AkademiksQc
странно, это сработало здесь - вы уверены вы одобрили разрешение на фотографии? – taber