我有这样的方法:
internal func handlePan(_ sender: UIPanGestureRecognizer) {
if (sender.state == .began) {
let initialPanPoint = sender.location(in: collectionView)
findDraggingCellByCoordinate(initialPanPoint)
} else if (sender.state == .changed) {
let newCenter = sender.translation(in: collectionView!)
updateCenterPositionOfDraggingCell(newCenter)
} else {
if let indexPath = draggedCellPath {
// finishedDragging(collectionView!.cellForItem(at: indexPath)!)
finishedDragging((collectionView?.cellForItem(at: indexPath))!)
}
}
}
我正在崩溃
finishedDragging((collectionView?.cellForItem(at: indexPath))!)
致命错误:在解包可选值时意外发现nil
我该如何解开这个? 请帮我。 感谢。
答案 0 :(得分:0)
目前,您正在强制展开一个恰好是nil的可选项。因此,您需要在index的可选解包中添加一个附加子句,以确定集合视图是否可以返回该索引路径中的单元格。如果集合视图无法在索引路径返回单元格,则它将返回nil并且不会执行条件。
if let indexPath = draggedCellPath, let cell = collectionView?.cellForItem(at: indexPath){
finishedDragging(cell)
}