所以我目前使用的Xcode 7测试一个项目转换为斯威夫特2,和我目前得到的错误:无法下标类型为“[NSIndexPath]”的值与int类型
Cannot subscript a value of type '[NSIndexPath]?' with a type 'Int'
为下面的代码灵:
let indexPath = indexPaths[0] as! NSIndexPath
试图当用户选择使用prepareForSegue
方法在UICollectionView
小区将数据传递到一个视图控制器时。
这里是完整的prepareForSegue
方法。我不确定这是否是Swift 2错误,但在使用Swift 1.1 for iOS 8.4时可以正常工作。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "details" {
let vc = segue.destinationViewController as! DetailsViewController
let indexPaths = self.collectionView.indexPathsForSelectedItems()
let indexPath = indexPaths[0] as! NSIndexPath
let selectedItem = items[indexPath.row]
vc.selectedItem = selectedItem
}
}
尝试做'let indexPaths = self.collectionView.indexPathsForSelectedItems()as! [NSIndexPath]' –
@TheBeanstalk是啊,这似乎现在做的伎俩,仍然转换代码,无法运行atm。 'let indexPaths = self.collectionView.indexPathsForSelectedItems()as [NSIndexPath]!' – RileyDev
如果您单独保留'indexPaths'这行,而将'let indexPath = indexPaths![0]改为! NSIndexPath' –