尝试将 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! 的值。看到 PFObjectPFObject! 之间的区别了吗?

  • 因为PFObject!Optional的类型。就像StringString!一样。它们是不同的类型。
  • 就像您为 detailScene.currentObject = objects[row] as! PFObject 写的一样,如果您检查一下,currentObject 可能是 Optional 类型,这导致 detailScene.currentObjectOptional类型。
  • 之后,您将 objects[row]PFObject 类型分配给 detailScene.currentObjectPFObject! 类型。


也许你可以像这样更正你的代码,

    detailScene.currentObject! = objects[row] as! PFObject

currentObject 解包为 PFObject 类型。