解析Swift

时间:2015-07-12 17:21:48

标签: ios swift parse-platform objectid

我正在尝试从Parse加载一个关于Swift中的Object的信息页面。给出的代码允许您一次检索整个类。但是如何在不访问Parse上的仪表板的情况下检索ObjectID?

此代码来自Parse

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

一切都很直接但我仍然不知道如何随机生成ObjectID。

2 个答案:

答案 0 :(得分:1)

如果我正确理解您的问题,您想要查询所有对象并列出其ID,例如:

var query = PFQuery(className:"GameScore")
    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]!, error: NSError!) -> Void in
        if error == nil {

            println("Successfully retrieved \(objects.count) scores.")
            //list of Ids
            for object in objects {
                objectIds.append(object.objectId as String)
            }
        } else {
            println("\(error)")
        }

    }

答案 1 :(得分:0)

执行此操作的最佳方法是在解析仪表板中包含2个单独的类。 根据您的示例,一个用于carTypes,另一个类carDetails带有指向carTypes的指针。

当您点击汽车时,您可以使用carTypes中的objectId查询carDetails类。

例如

    // you have to give this object some value when you click on a button or    cell..etc
    var selectedCar : PFObject?

//in the query i didn't use selectedCar.objectId because i am using pointers to the carType class so parse will get the objectId for you

        let query = PFQuery(className: "carDetails")
        query.whereKey("carType", equalTo: selectedCar)
        query.findObjectsInBackgroundWithBlock({ (object: [PFObject]?,error: NSError?) -> Void in
                    if error == nil {
        some code here
        }
                    }) 

我希望这能澄清