【发布时间】:2016-07-10 02:33:35
【问题描述】:
当您想要更改 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 谢谢,
error.code是-1,这似乎是一般错误The operation couldn’t be completed. (Cocoa error -1.)
标签: ios phasset phphotolibrary