Ios indexPathForSelectedRow返回意外的零

Ios indexPathForSelectedRow返回意外的零,ios,swift,uitableview,Ios,Swift,Uitableview,我有一个名为Objects的数组,它是NSManagedObject的子类,并在UITableView中显示它们的属性 我有一个序列来查看对象的详细信息,这是通过手势执行的-在我使用prepareforsgue将UITableViewCell的数据传递到序列ViewController之前,这一切都很正常。但是当使用 让indexath=self.table.indexPathForSelectedRow, 我得到了所选行的nil值,因此应用程序在试图传递数据时崩溃。下面是一个完整代码的示例:

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

我有一个序列来查看对象的详细信息,这是通过手势执行的-在我使用
prepareforsgue
UITableViewCell
的数据传递到序列
ViewController
之前,这一切都很正常。但是当使用
让indexath=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中也做了同样的事情,效果很好。此外,我还尝试在选择单元格时实现另一个序列,但我无法使用函数
didselectrowatinexpath
调用
prepareForSegue
,但可以在我的其他
ViewController
-我不确定此信息是否相关,也可能指示问题所在

没有选择单元格是有效的条件。您应该编写防御代码来处理该情况。如果
indexPathForSelectedRow
返回nil

,则可以实现
shouldPerformSegueWithIdentifier:
方法,并返回
false
。您应该编写防御代码来处理该情况。您可以实现
shouldPerformSegueWithIdentifier:
方法,如果
indexPathForSelectedRow
返回nil,则返回
false
,segue是如何触发的?@vacawama传递
objectDetails
数据的segue可以工作,并且是通过手势完成的。我在选择单元格时尝试执行的另一个手势是self.table!=nil?segue是如何触发的?@vacawama为
objectDetails
传递数据的segue可以工作,并且是通过手势完成的。我在选择单元格时尝试执行的另一个手势是self.table!=无