我的prepareForSegue
电话遇到了一些问题。每当我尝试segue到下一个视图控制器。它会在我将tripLikes传递给下一个视图控制器时出现错误并崩溃。
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "toDetailScene") {
//Hooking up places-holder values
let viewController = segue.destinationViewController as! DetailViewController
let cell = sender as! CustomPFTableViewCell
viewController.tripName = cell.nameTextLabel.text!
viewController.tripAuthor = cell.authorTextLabel.text!
viewController.tripLikes = Int(cell.numLikes.text!)!
viewController.tripDescrip = cell.descriptionHolder
}
}
我们传递给的每个值都是目标视图控制器中的值。
答案 0 :(得分:5)
您正在使用Int(cell.numLikes.text!)!
进行大量强制解包。如果其中任何一个值为nil
,则程序将崩溃。
为什么不尝试更安全的东西,例如if-let
流程:
if let text = cell.numLikes.text {
if let textInt = Int(text) {
viewController.tripLikes = textInt
} else { // Int cannot be constructed from input
viewController.tripLikes = 0
}
} else { // cell.numLikes.text was nil
viewController.tripLikes = 0
}