Одна из спецификаций моего приложения заключается в том, что при нажатии на ячейку tableView пользователь будет перенаправлен на веб-сайт, связанный с ячейкой. Вот код:
override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
if let url = NSURL(string: appdelegate.studentInfo[indexPath.row].url) {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
UIApplication.sharedApplication().openURL(url)
}
else {
let alert = UIAlertController(title: "Invalid URL", message: "Cannot open URL because it is invalid.", preferredStyle: UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Cancel, handler: nil))
self.presentViewController(alert, animated: true, completion: nil)
}
}
При первом нажатии URL открывается, как и предполагалось. Однако возврат к приложению из Safari и касание другой ячейки приводит к следующей ошибке, хотя приложение все еще работает так, как предполагается:
Снимок снимка, который не был отображен, приводит к пустой снимок. Убедитесь, что ваше представление было просмотрено не ранее, чем раньше моментальный снимок или моментальный снимок после обновления экрана.
Есть ли способ избежать этой ошибки? Или это ошибка?
Я экспериментировал с блоками dispatch_async, но это не решило проблему.