2016-03-22 7 views
1

PHAssetに変更する場合は、performChangesブロックにまとめます。完了ブロックには、BoolとエラーNSErrorが表示されます。今、私は、要求が失敗した場合にユーザーにアラートを表示したいと思います。これはトリックを行います:フォトライブラリを変更するときにユーザーが[許可しない]をタップしたときに検出します。

PHPhotoLibrary.sharedPhotoLibrary().performChanges({() -> Void in 
    let request = PHAssetChangeRequest(forAsset: asset) 
    request.creationDate = date 
}, completionHandler: { (success: Bool, error: NSError?) -> Void in 
    dispatch_async(dispatch_get_main_queue()) { 
     if let error = error { 
      //present alert 
     } 
    } 
}) 

問題は、ユーザーが[許可しない]をタップしてもアラートが表示される場合です。私はそれをしたくない、ユーザーが故意にそれをキャンセルしたので、失敗したことを知らせる必要はない。しかし、どのようにそれが起こったのかを検出することができますか?エラーuserInfonilです。このケースを検出するための有用な情報はありません。何か不足していますか?

+0

エラーのコードを確認してください。おそらく、ユーザーがアクセスを拒否したことを示すために使用される特定のコードがあります。 – rmaddy

+0

@rmaddyありがとう、 'error.code'は' -1'です。これは一般的なエラーです '操作を完了できませんでした。 (ココアエラー-1)。 – Joey

答えて

0

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus状態){

NSLog(@"%ld",(long)status); 

switch (status) { 

    case PHAuthorizationStatusAuthorized: 

     // code for display photos 


      NSLog(@"ffefwfwfwef"); 

    case PHAuthorizationStatusRestricted: 



     break; 
    case PHAuthorizationStatusDenied: 

     //code for Dont Allow code 

     break; 
    default: 
     break; 
} 

}]。

+0

PHAuthorizationStatusが異なっています。承認ステータスは、写真コンテンツ編集の承認とは関係ありません。 – Joey

関連する問題