尝试将 PFObject 连接到下一个视图控制器时出错(Swift 1.2)
Error when trying to Segue a PFObject to the next View Controller (Swift 1.2)
我是编码新手。
在 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
}
}
}
您的 错误说无法将类型 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
类型。
我是编码新手。
在 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
}
}
}
您的 错误说无法将类型 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
类型。