Parse和Swift Xcode 6.3问题

时间:2015-04-21 15:26:35

标签: xcode swift parse-platform

编辑:我认为这个错误可能是因为Xcode 6.3可能已经改变了一些功能,而query.getObjectInBackgroundWithId就是其中之一....

我正在尝试运行查询,但是当我运行方法" query.getObjectInBackgroundWithId" ,我收到错误消息:

"无法调用' getObjectInBackgroundWithId'使用类型的参数列表(string,block:(PFObject!,NSError?) - > Void"

override func viewDidLoad() {
    super.viewDidLoad()

    let score = PFObject(className: "gameScore")




    var query = PFQuery(className: "gameScore")
    query.getObjectInBackgroundWithId("HK0UbuTIQL", block: {
        (score: PFObject!, error: NSError?) -> Void in

        if error == nil  {

            println("pussiesPoundedCreated")

        } else {

            println(error)
        }
    })
}

2 个答案:

答案 0 :(得分:1)

您可以删除阻止语句并解开变量,如下所示:

var query = PFQuery(className: "gameScore")
query.getObjectInBackgroundWithId("HK0UbuTIQL") {
  (gameScore: PFObject!, error: NSError?) -> Void in
  if error == nil && gameScore != nil {
    println(gameScore)
  } else {
    println(error)
  }
}

Parse.com文档相当不错,并且Swift可用于大多数代码示例。 Here is a link to this topic

答案 1 :(得分:0)

此方法采用带有参数签名(PFObject!, NSError!)的块,但您编写的块的参数签名为(PFObject!, NSError?)。将NSError?更改为NSError!

您还应该使用trailing closure syntax中的Portland Runner's answer,因为它更具可读性。