0

我是编码新手。在 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
        }
    }
}
4

1 回答 1

1

您的错误说不能将 type 的值分配给 typePFObject的值PFObject!PFObject看到和之间的区别了PFObject!吗?

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


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

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

解包currentObjectPFObject类型。

于 2015-04-19T03:00:37.747 回答