2011-09-06 5 views
2

ELCImagePickerController를 사용하여 사진 라이브러리에서 사진을 가져옵니다. 그건 사진 라이브러리에서 사진을 보여주는 ipad 시뮬레이터에서 잘 작동합니다. 하지만 그것은 iPad 장치에서 작동하지 않습니다.님이 ipad 장치의 사진 라이브러리에서 사진을 검색 할 수 없습니다.

오류가 발생했다는 것은 장치 사진이 있어도 사진이 없음을 의미합니다.

은 내가 아니라 아이 패드 장치, 시뮬레이터에 대해 다음

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

작품을 사용했다.

누구든지 회신 할 수 있습니다. 문제가 무엇입니까?

미리 감사드립니다.

+1

'assetGroupEnumberatorFailure' 블록이 실제로받는 오류는 무엇입니까? – Anomie

+0

안녕하세요 Anomie, 해당 메시지가 경고에 -> 앨범 오류 : Error 도메인 : ALAssetsLibraryErrorDomain Code = -3311 "User denied access"로 표시됩니다. UserInfo = 0x147180 {NSLocalizedFailureReason = 사용자가 자신의 미디어에 대한 응용 프로그램 액세스를 거부했습니다. NSLocalizeddescription = 사용자가 액세스를 거부했습니다.}이 말은 사진 라이브러리에 사진이 없음을 의미합니다. 내 장치에는 사진이 있습니다. 당신은 왜 당신이 알고 있는지 말해 줄 수 있습니까 –

답변

5

받는 오류 메시지는 사용자가 위치 서비스에 대한 액세스를 거부하여 사진 라이브러리에 대한 프로그램 액세스를 거부했음을 나타냅니다. 어떤 알려지지 않은 이유로 Apple은 위치 서비스 권한을 사용하여 AssetsLibrary 프레임 워크를 통해 사진 라이브러리에 대한 액세스를 제어합니다. 설정 애플리케이션으로 이동하여 위치 서비스가 켜져 있고 애플리케이션에 허용되는지 확인하십시오.

내 생각에 그들이 이렇게 한 이유는 일부 앱이 라이브러리의 모든 사진을로드하고 EXIF ​​위치 정보 태그 지정 데이터를 찾는 것으로 인해 위치 서비스가 거부되는 것을 막을 수 있기 때문입니다.

+0

Anomie, 당신은 많은 도움을 주셔서 감사합니다. 이제는 작동 중입니다 –

+0

하지만 위치 서비스가 사용되는 사용자를 확인하는 방법은이를 피할 수있는 방법입니까? –

+2

@Chakradhar : [CLLocationManager] (http://developer.apple.com/library/ios/documentation/CoreLocation/Reference/CLLocationManager_Class/CLLocationManager/CLLocationManager.html)를 사용하면 상황을 조금 더 제어 할 수 있지만 주로 도메인'ALAssetsLibraryErrorDomain'과'ALAssetsLibraryAccessUserDeniedError' 또는'ALAssetsLibraryAccessGloballyDeniedError' 코드를 가진 NSError가 있는지 확인해야합니다. – Anomie

관련 문제