Swift 解析框架和闭包

Swift parse framework and closures

这简直让我抓狂。

我正在尝试在 swift 中使用 getFirstObjectInBackgroundWithBlock() 方法,但我不知道如何(不)使用选项 ..

我只想从解析服务器获取用户的分数我是这样做的:

func updateScoreForCurrentUser(score: Int){
    let user = PFUser.currentUser()

    // get gameScore for user
    var query = PFQuery(className: "GameScore")
    query.whereKey("User", equalTo: user!)
    query.getFirstObjectInBackgroundWithBlock { (gameScore: PFObject, error: NSError?) -> Void in
        gameScore["score"] = score
}

我刚刚得到一个"Cannot invoke 'getFirstObjectInBackgroundWithBlock' with an argument list of type '((PFObject?, NSError?) -> Void)'"

你能帮帮我吗?谢谢

正如您已经猜到的那样,您收到的这个错误是您需要将 gameScore 对象作为可选对象。

"Cannot invoke 'getFirstObjectInBackgroundWithBlock' with an argument list of type '((PFObject?, NSError?) -> Void)'"

这不是因为 swift 或其限制。这是因为 Parse SDK 定义了那个函数。除非 Parse 更改其 API,否则您将不得不使用可选的。

关于这件事,只有我的两分钱,这里有一个可选的。 要么你会得到一个 PFObject,要么你会得到一个错误,而不是两者。所以其中之一将为零,因此使用 Optional.