尝试将PFObject传递给下一个视图控制器时出错(Swift 1.2)

时间:2015-04-18 20:00:47

标签: ios swift parse-platform xcode6.3 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
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您的错误表示无法将类型PFObject的值指定为类型PFObject!的值。查看PFObjectPFObject!之间的差异?

  • 因为PFObject!Optional的类型。就像StringString!一样。它们是不同的类型。
  • 与您为detailScene.currentObject = objects[row] as! PFObject所写的内容一样,currentObject可能是Optional类型,如果您选中它,则detailScene.currentObject会导致Optional类型。
  • 之后,您将objects[row] PFObject类型分配给detailScene.currentObjectPFObject!类型。


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

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

currentObject解包为PFObject类型。