所以我目前使用的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' –