我有一个名为Objects
的数组,它是NSManagedObject
的子类,并在UITableView
中显示其属性。
我有一个segue来查看对象的详细信息,这是使用手势执行的 - 这可以正常工作,直到我使用prepareForSegue
将UITableViewCell
的数据传递给segueing {{ 1}}。但是在使用时
ViewController
,
我获取所选行的nil值,因此应用程序在尝试传递数据时崩溃。以下是完整代码的示例:
let indexPath = self.table.indexPathForSelectedRow
有谁知道可能出现的问题?我在另一个ViewController中做了同样的事情,它运行良好。此外,我试图在选择单元格时实现另一个segue,但我无法使用函数if segue.identifier == "showDetails" {
let vc = segue.destinationViewController as! DetailsViewController
let indexPath = self.table.indexPathForSelectedRow
if indexPath == nil { print(index path is NIL")}
let selectedObject = self.objects[indexPath!.row]
vc.setting = setting
vc.selectedObject = selectedObject
}
调用prepareForSegue
,但可以在我的其他didSelectRowAtIndexPath
中调用 - 我不确定是否有此信息是相关的,或者也可能表明问题可能是什么。
答案 0 :(得分:3)
没有选择单元格是有效的条件。你应该采取防御性措施来处理这种情况。您可以实施shouldPerformSegueWithIdentifier:
方法,如果false
返回nil,则返回indexPathForSelectedRow