2016-09-01 2 views
4

사용자가 처음에 사진 앨범에 액세스 할 수 없으면 선택 취소 및 설정 팝업이 표시됩니다. 그가 설정을 선택하면 설정 페이지로 이동하여 앱의 카메라 및 사진 보관함을 사용하도록 설정할 수 있습니다. 그러나 사용자가 설정에서 카메라 또는 사진 라이브러리 스위치를 토글하자마자 내 앱은 "디버거의 메시지 : 신호 9로 인해 종료되었습니다"라는 인쇄물과 충돌합니다. 다음은 내 팝업에 대한 코드는IOS의 설정 변경을 처리하는 올바른 방법

@IBAction func cameraBarBtnPress(sender: AnyObject) { 

    let photoAuthStatus = PHPhotoLibrary.authorizationStatus() 

    switch photoAuthStatus { 

    case .Authorized: 
     presentFusumaCameraVC() 

    case .Denied, .Restricted : 

     showNeedPhotoAlbumAccessPopup() 

    case .NotDetermined: 
     PHPhotoLibrary.requestAuthorization({ (authStatus: PHAuthorizationStatus) in 
      switch authStatus { 
      case .Authorized: 
       self.presentFusumaCameraVC() 

      case .Denied, .Restricted : 
       self.showNeedPhotoAlbumAccessPopup() 

      case .NotDetermined: 
       print("Shouldnt get to here") 
      } 
     }) 
    } 
} 

func showNeedPhotoAlbumAccessPopup() { 
    let alertController = UIAlertController(title: "Enable Photo Album Access", message: "", preferredStyle: .Alert) 
    let cancelAction = UIAlertAction(title: "Cancel", style: .Default, handler: nil) 
    let settingsAction = UIAlertAction(title: "Settings", style: .Default, handler: { (action: UIAlertAction) in 
     let settingsUrl = NSURL(string: UIApplicationOpenSettingsURLString) 
     if let url = settingsUrl { 
      UIApplication.sharedApplication().openURL(url) 
     } 
    }) 
    alertController.addAction(settingsAction) 
    alertController.addAction(cancelAction) 
    self.presentViewController(alertController, animated: true, completion: nil) 
} 

사용자가 다시 응용 프로그램으로 이동하여 스위치를 전환 한 후 사진을 선택 시작할 수 있도록 어떤이 처리하는 올바른 방법이 될 것이다?

+0

PHPhotolibrary.authorizationStatus() 메소드의 구현은 무엇입니까? – dudeman

+0

PHPhotolibrary를 구현하지 않았습니다. authorizationStatus() 자신. 그것은 애플의 PHPPhotoLibrary에서 온 것입니다 : NSObject 클래스 – user172902

+0

photoAuthStatus의 값은 무엇입니까? – dudeman

답변

관련 문제