我是编码的新手。
在Swift 1.2更新之前创建segue没有任何问题。我在尝试下面的代码时收到Cannot assign a value of type 'PFObject' to a value of type 'PFObject?'
的错误。
任何人都可以帮我解决这个问题吗?
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "PushToDetails" {
// Get the new view controller using [segue destinationViewController].
var detailScene = segue.destinationViewController as! DetailViewController
// Pass the selected object to the destination view controller.
if let indexPath = self.tableView.indexPathForSelectedRow() {
let row = Int(indexPath.row)
detailScene.currentObject = objects[row] as! PFObject
}
}
}
答案 0 :(得分:1)
您的错误表示无法将类型PFObject
的值指定为类型PFObject!
的值。查看PFObject
和PFObject!
之间的差异?
PFObject!
是Optional
的类型。就像String
和String!
一样。它们是不同的类型。detailScene.currentObject = objects[row] as! PFObject
所写的内容一样,currentObject
可能是Optional
类型,如果您选中它,则detailScene.currentObject
会导致Optional
类型。 objects[row]
PFObject
类型分配给detailScene.currentObject
,PFObject!
类型。
也许你可以像这样纠正你的代码,
detailScene.currentObject! = objects[row] as! PFObject
将currentObject
解包为PFObject
类型。