【发布时间】:2016-06-03 06:15:21
【问题描述】:
点击搜索后点击 TableView 时出现如下错误。
以下错误 2016-06-03 11:20:31.578 ContactPLUS[1724:678512] 警告:尝试在 已经呈现(空) 圣>> 2016-06-03 11:20:32.001 ContactPLUS[1724:678512]-[_UIAlertControllerAlertPresentationController AdaptivePresentationController]: 无法识别的选择器发送到实例 0x1616570d0
2016-06-03 11:20:32.001 ContactPLUS[1724:678512] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序, 原因:'-[_UIAlertControllerAlertPresentationController AdaptivePresentationController]:无法识别的选择器发送到实例 0x1616570d0'
*** 首先抛出调用堆栈: (0x182876e38 0x181edbf80 0x18287dccc 0x18287ac74 0x182778d1c 0x18836433c 0x1880117f8 0x187d20740 0x187c72fd8 0x187c80990 0x1879b24a4 0x18282c7b0 0x18282a554 0x18282a984 0x182754d10 0x18403c088 0x187a29f70 0x1000f8070 0x1822f28b8) libc++abi.dylib:以 NSException 类型的未捕获异常终止
下面是我的代码
进入函数
dispatch_async(dispatch_get_main_queue()) {
self.searchActivityLoader.stopAnimating()
self.searchActivityLoader.hidden = true
self.showError(self.noDataFound)
}
显示警报控制器的逻辑:
func showError(errorStr: String){
dispatch_async(dispatch_get_main_queue(), {
if(!errorStr.isEmpty){
let alertController = self.controllerUtil!.customOkAlert("Fail",buttonTitle:"OK" , alertMessage: errorStr)
self.presentViewController(alertController, animated: true, completion: nil)
//**Error comes after executing above two lines**
}
self.genericArr = []
self.contactsTableView.dataSource = self
self.contactsTableView.reloadData()
self.searchActivityLoader.stopAnimating()
self.searchActivityLoader.hidden = true
})
}
///CustomeOkAlert
//警报控制器使用默认操作和自定义消息进行管理
func customOkAlert(alertPageTitle: String,buttonTitle: String, alertMessage: String) -> UIAlertController
{
let customeAlert = UIAlertController(title: alertPageTitle, message: alertMessage, preferredStyle: UIAlertControllerStyle.Alert)
customeAlert.view.layer.cornerRadius = 10
customeAlert.view.backgroundColor = utility.uicolorFromHex(0xEBEBED)
customeAlert.view.tintColor = utility.uicolorFromHex(0x70B420)
let cancelAction: UIAlertAction = UIAlertAction(title: buttonTitle, style: .Default){action in
//do nothing
}
customeAlert.addAction(cancelAction)
return customeAlert
}
【问题讨论】:
-
你能发布 customOkAlert() 方法吗?
-
你能在你的
showError函数中加入一个print("someText"),看看它是否被调用了两次吗?
标签: ios swift uialertcontroller unrecognized-selector nsexception