не удалось получить фотографии из библиотеки фотографий на устройстве iPad

Я получаю фотографии из библиотеки фотографий, используя ELCImagePickerController . Это отлично работает в симуляторе ipad, который показывает фотографии из библиотеки фотографий. Но это не работает на устройстве iPad.

Это показывает, что ошибка сбоя означает, что фотографий нет, хотя на устройстве есть фотографии.

я использовал следующее

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];        
[library enumerateGroupsWithTypes:ALAssetsGroupAll
                       usingBlock:assetGroupEnumerator 
                     failureBlock:assetGroupEnumberatorFailure];

работает для симулятора, но не для устройства ipad.

кто-нибудь может ответить, в чем проблема.

Заранее спасибо.


person Steve Gear    schedule 06.09.2011    source источник
comment
Какую реальную ошибку получает ваш блок assetGroupEnumberatorFailure?   -  person Anomie    schedule 06.09.2011
comment
Привет, Аномия, это сообщение отображается в предупреждении как -- › Ошибка альбома: Error Domain:ALAssetsLibraryErrorDomain Code=-3311 Пользователь запретил доступ UserInfo=0x147180{NSLocalizedFailureReason=Пользователь запретил приложению доступ к своим носителям.,NSLocalizeddescription=Пользователь запретил доступ } .. Я знаю, что это означает, что в фотобиблиотеке нет фотографий. но есть фотографии в моем устройстве. Не могли бы вы сказать мне, почему, если вы знаете   -  person Steve Gear    schedule 06.09.2011


Ответы (1)


Сообщение об ошибке, которое вы получаете, указывает на то, что пользователь запретил вашей программе доступ к библиотеке фотографий, запретив доступ к службам определения местоположения. По какой-то неизвестной причине Apple использует разрешение Служб определения местоположения для управления доступом к библиотеке фотографий через структуру AssetsLibrary. Зайдите в приложение «Настройки» и убедитесь, что службы геолокации включены и разрешены для вашего приложения.

Я предполагаю, почему они сделали это, потому что они обеспокоены тем, что какое-то приложение может каким-то образом обойти отказ Службы определения местоположения, загрузив все фотографии из библиотеки и ища данные геотегов EXIF.

person Anomie    schedule 06.09.2011
comment
Но как узнать у пользователя, что Службы определения местоположения включены, есть ли способ избежать этого? - person Steve Gear; 07.09.2011
comment
@Chakradhar: вы можете использовать CLLocationManager чтобы иметь немного больше контроля над вещами, но в основном вам просто нужно проверить, получаете ли вы NSError с доменом ALAssetsLibraryErrorDomain и кодом ALAssetsLibraryAccessUserDeniedError или ALAssetsLibraryAccessGloballyDeniedError. - person Anomie; 07.09.2011
comment
@Anomie, Стив Гир: я также использовал Assetslibrary в своем приложении, и я столкнулся с той же проблемой, не могли бы вы дать мне идею или пример кода, чтобы я мог решить эту проблему. Заранее спасибо! - person Gamer; 19.09.2012