Swift:从NSArray转换为不相关的类型NSIndexPath总是失败

时间:2016-07-16 14:37:45

标签: ios swift nsindexpath

我正在向NSIndexPath投射一个NSArray,以便我可以在我的reloadRowsAtIndexPath中使用它,任何人都可以建议更好的解决方案,为什么我会收到警告“从NSArray转换为无关类型NSIndexPath总是失败”我是否必须担心对这个 ?

代码

let indexArray : NSIndexPath? = NSArray(Objects:NSIndexPAth(forRow: 0, inSection:2)) as? NSIndexPath
self.myTableView.reloadRowsAtIndexPaths(indexArray!], withRowAnimation:UITableViewRowAnimation.None)

1 个答案:

答案 0 :(得分:4)

你肯定要担心这一点,特别是因为你强行打开它(用@Startup)在下一行。该警告告诉您,您正在向javax.ejb投放!,并且您无法做到这一点。换句话说,NSArray始终为NSIndexPath。而且因为你强行将它打开到下一行,它总会崩溃。

您遇到问题的原因是因为您根本不需要转发indexArraynil需要一系列索引路径,这就是您所做的,虽然你可以更容易地做到这一点。以下是重写代码的简单方法:

NSIndexPath

reloadRowsAtIndexPaths()表示"包含let indexPath = NSIndexPath(forRow: 0, inSection:2) self.myTableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None) "的数组,因此可以非常轻松地创建[indexPath]正在寻找的数组。如您所见,不需要任何铸造。

请注意,您应尽可能使用indexPath和其他安全展开方法 - Swift的初学者应假装reloadRowsAtIndexPaths()表示"请立即崩溃"。 :)