2010-06-29 1 views
0

Я пытаюсь создать собственный UIImagePickerController, используя библиотеку ресурсов активов из последнего SDK 4.0. Вот код:Проблема с пользовательским UIImagePickerController с SDK 4.0

-(void)viewDidLoad{ 

[super viewDidLoad]; 

groups = [[NSMutableArray alloc] init]; 
ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init]; 
NSUInteger groupTypes = ALAssetsGroupAlbum; 

ALAssetsLibraryGroupsEnumerationResultsBlock listGroupBlock = ^(ALAssetsGroup *group, BOOL *stop) { 
    if (group) 
    [groups addObject:group]; 
}; 

ALAssetsLibraryAccessFailureBlock failureBlock = ^(NSError *error) { 
    NSString *errorTitle = [error localizedDescription]; 
    NSString *errorMessage = [error localizedRecoverySuggestion]; 
    NSString *errorFailureDesc = [error localizedFailureReason]; 

    NSLog(@"Error: %@, Suggestion: %@, Failure desc: %@", errorTitle, errorMessage, errorFailureDesc); 
}; 

[assetsLibrary enumerateGroupsWithTypes:groupTypes usingBlock:listGroupBlock failureBlock:failureBlock]; 
} 

Проблема здесь в том, что я получаю сообщение об ошибке, и блок отказа вызываются из gorups переписчика. Вот лог:

Error: Global denied access

Suggestion: This setting can be changed in Preferences.

Failure desc: The user has denied all applications access to their media.

Как показано в SDK 4.0 демонстрации там должно отображаться сообщение о том, что приложение хочет получить доступ к фотоальбомов и пользователь должен грандиозном доступ. Я вообще не вижу сообщения и получаю описанную выше ошибку. Есть ли кто-то, кто может сказать мне, что нужно изменить в настройках, чтобы решить проблему?

Thanks, Viktor.

+0

Проблема может быть решена с помощью функции «Сбросить все настройки» из «Настройки» -> «Общие» -> «Сброс». Затем появится уведомление. Главный вопрос теперь в том, как эти параметры можно изменить без сброса всех настроек? – Viktor

ответ

2

Для доступа к этой информации Местонахождение Serivices должно быть настроено ON !!! Нет необходимости перезагружать все настройки. В этом случае появится диалог разрешения доступа.