我的UIAlertController
当前遇到一个奇怪的问题。它应该在下载失败时通知用户,并为他们提供“ 重试”或“ 取消”。
UIAlertController
获得两项操作,一项重新启动项目下载,另一项可视化地处理取消。当我对其进行测试时,重试操作的功能与预期的一样-会显示相同的警报,直到恢复Internet连接为止,然后继续下载,就像应该的那样。
但是,似乎没有调用取消操作的handler
。这是代码:
func showDownloadErrorDialogue(project: Project, error: Error) {
let alertController = UIAlertController(title: "DL failed", message: "DL failed, try again", preferredStyle: .alert)
let actionRetry = UIAlertAction(
title: "retry",
style: .default,
handler: { action in
self.retryDownload()
}
)
let actionCancelDownload = UIAlertAction(
title: "cancel",
style: .default,
handler: { action in
self.onDownloadCanceledFromErrorMessage()
}
)
alertController.addAction(actionRetry)
alertController.addAction(actionCancelDownload)
self.present(alertController, animated: true, completion: nil)
}
func onDownloadCanceledFromErrorMessage() {
NSLog("ARVC: Download was canceled from error message")
}
当我按下取消按钮并且未记录onDownloadCanceledFromErrorMessage()
中的消息时,不会调用 NSLog
。
有人曾经历过类似的经历吗?有谁知道出什么问题了吗?预先感谢。