Iphone - Как включить доступ приложения к мультимедиа на устройстве? - ALAssetsLibraryErrorDomain Code = -3312 "Глобальный запрещенный доступ"

Хорошо, поэтому у меня была эта проблема раньше, и я решил ее неосознанно, и теперь она повторяется!

"error: 
 Error Domain=ALAssetsLibraryErrorDomain Code=-3312 "Global denied access" UserInfo=0x169aa0 
 {NSLocalizedFailureReason=The user has denied all applications access to their media., 
 NSLocalizedRecoverySuggestion=This setting can be changed in Preferences., 
 NSLocalizedDescription=Global denied access}"

Обратите внимание://Я не получаю эту проблему в симуляторе - мой код для итерирования активов отлично работает на симуляторе.

Конечно, это простое решение, но будьте прокляты, если я могу найти что-либо в разделе "Настройки" в любом месте, которое помогает.

Пожалуйста, остановитесь!

Ответ 1

Какая шутка - службы определения местоположения должны быть включены...

Что такое JOKE!

Ответ 2

Просто перейдите к Настройки > Общие > Reset > Сбросить предупреждения о местоположении.

Однако это не поможет вашим пользователям, но это полезно для разработки

Ответ 3

Для iOS 4.2 и более поздних версий используйте метод класса authorizationStatus класса CLLocationManager.

он вернет перечисление CLAuthorizationStatus (объявленное в CLLocationManager.h), вы можете проверить возврат для kCLAuthorizationStatusAuthorized.

if ( [CLLocationManager authorizationStatus] == kCLAuthorizationStatusAuthorized ) {
    // do your stuff
} else {
   // sorry user, you must enable us to see your location if you want to use YOURS assets library
}

iOS 6 также вводит этот метод для класса ALAssetsLibrary.