我正在向NSIndexPath投射一个NSArray,以便我可以在我的reloadRowsAtIndexPath中使用它,任何人都可以建议更好的解决方案,为什么我会收到警告“从NSArray转换为无关类型NSIndexPath总是失败”我是否必须担心对这个 ?
代码
let indexArray : NSIndexPath? = NSArray(Objects:NSIndexPAth(forRow: 0, inSection:2)) as? NSIndexPath
self.myTableView.reloadRowsAtIndexPaths(indexArray!], withRowAnimation:UITableViewRowAnimation.None)
答案 0 :(得分:4)
你肯定要担心这一点,特别是因为你强行打开它(用@Startup
)在下一行。该警告告诉您,您正在向javax.ejb
投放!
,并且您无法做到这一点。换句话说,NSArray
始终为NSIndexPath
。而且因为你强行将它打开到下一行,它总会崩溃。
您遇到问题的原因是因为您根本不需要转发indexArray
:nil
需要一系列索引路径,这就是您所做的,虽然你可以更容易地做到这一点。以下是重写代码的简单方法:
NSIndexPath
reloadRowsAtIndexPaths()
表示"包含let indexPath = NSIndexPath(forRow: 0, inSection:2)
self.myTableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.None)
"的数组,因此可以非常轻松地创建[indexPath]
正在寻找的数组。如您所见,不需要任何铸造。
请注意,您应尽可能使用indexPath
和其他安全展开方法 - Swift的初学者应假装reloadRowsAtIndexPaths()
表示"请立即崩溃"。 :)