2011-08-05 3 views
1

내 앱에서 ELCImagePickerController를 사용했습니다. 하지만 처음으로 응용 프로그램을 시작할 때 Image Gallery에서 사용자 위치에 액세스 할 것인지 묻습니다. 사용자 위치에 액세스 할 수 없으면 UIAlertView에 오류가 발생하고 이미지 갤러리가 표시되지 않습니다.사용자 위치에 대한 액세스를 허용하지 않는 ELCImagePickerController

그런 다음 앱 -> 위치 서비스 -> [앱의 액세스 위치 스위치 켜기]로 이동 한 다음 앱 시작 -> 갤러리 페이지로 이동 -> 앱에 이미지 갤러리를 표시 할 수 있습니다.

내 질문에 어떻게 우리의 애플 리케이션에 대한 위치 서비스를 해제하거나 사용자가 우리의 애플 리케이션에 위치를 액세스 할 수 있도록 ELCImagePickerController와 이미지 갤러리를 표시 할 수 있습니다. 사용자 위치 액세스를 해제 할 때 부하 다음이 오류 경고가 발생 했습니까 ELCImagePickerController이

dispatch_async(dispatch_get_main_queue(),^
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

    // Group enumerator Block 
    void (^assetGroupEnumerator)(struct ALAssetsGroup *, BOOL *) = ^(ALAssetsGroup *group, BOOL *stop) 
    { 
     if (group == nil) 
     { 
      return; 
     } 

     [self.assetGroups addObject:group]; 

     // Keep this line! w/o it the asset count is broken for some reason. Makes no sense 
     NSLog(@"count: %d", [group numberOfAssets]); 

     // Reload albums 
     [self performSelectorOnMainThread:@selector(reloadTableView) withObject:nil waitUntilDone:YES]; 
    }; 

    // Group Enumerator Failure Block 
    void (^assetGroupEnumberatorFailure)(NSError *) = ^(NSError *error) { 

     UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Error" message:[NSString stringWithFormat:@"Album Error: %@", [error description]] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 

     NSLog(@"A problem occured %@", [error description]);          
    }; 

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


    [library release]; 
    [pool release]; 
});  

답변

2

대답은,이 LINK

그런 다음 ELCAlbumPickerController.m 다음 파일보기로 이동 찾을에서 다운로드 할 수있는 당신은 '수 위치 서비스를 끄고 ELCImagePickerController로 이미지 갤러리를 보여줍니다.

ELCImagePickerController는 자산 라이브러리 프레임 워크를 사용하여 장치의 사진 앨범에 액세스합니다. 이 프레임 워크는 위치 데이터를 포함하여 사진의 메타 데이터에 대한 액세스도 제공하기 때문에 사용자는 위치 서비스를 사용하기 위해 앱에 대한 권한을 부여해야합니다. 당신은 표준 UIImagePickerController를 사용하는 경우 사용자가 액세스를 거부하는 경우

+0

(하지만 난 가정이 앱에 대한 요구 사항을 포함하지 않음)를 제외하고

, 그것은 자산에서하지로드 이미지를 수행,이 주변에있는 방법은 없습니다 하지만 그는 내가 ELCImagePickerController를로드 할 때 다시 액세스를 요청하고 싶습니다. 어떻게해야합니까? –

관련 문제