繁体   English   中英

indexPathForSelectedRow返回意外的nil

[英]indexPathForSelectedRow returns unexpected nil

我有一个名为Objects的数组,它是NSManagedObject的子类,并在UITableView显示其属性。

我有一个segue来查看使用手势执行的对象的详细信息-直到我使用prepareForSegue来将UITableViewCell的数据传递给segueing的ViewController ,它才能正常工作。 但是,当使用let indexPath = self.table.indexPathForSelectedRow ,我为选定的行获取了一个nil值,因此在尝试传递数据时应用程序崩溃。 这是完整代码的示例:

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          
}

有谁知道可能出了什么问题? 我在另一个ViewController中做了同样的事情,并且工作正常。 我也试图在选择单元格时实现另一个segue,但是我无法使用函数didSelectRowAtIndexPath调用prepareForSegue ,但是可以在我的其他ViewController -我不确定此信息是否相关或是否也可能表明问题所在。

没有选择任何单元格是有效条件。 您应该防御性地处理这种情况。 您可以实现shouldPerformSegueWithIdentifier:方法,如果indexPathForSelectedRow返回nil,则返回false

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM