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
}
}
})
問題は、ユーザーが[許可しない]をタップしてもアラートが表示される場合です。私はそれをしたくない、ユーザーが故意にそれをキャンセルしたので、失敗したことを知らせる必要はない。しかし、どのようにそれが起こったのかを検出することができますか?エラーuserInfo
はnil
です。このケースを検出するための有用な情報はありません。何か不足していますか?
エラーのコードを確認してください。おそらく、ユーザーがアクセスを拒否したことを示すために使用される特定のコードがあります。 – rmaddy
@rmaddyありがとう、 'error.code'は' -1'です。これは一般的なエラーです '操作を完了できませんでした。 (ココアエラー-1)。 – Joey