【问题标题】:How to retrieve a specific Column From Parse with swift?如何使用 swift 从 Parse 中检索特定的列?
【发布时间】:2015-09-02 03:49:02
【问题描述】:

我的解析类中有一个名为“serviceHistory”的数组列。它采用 JSON 格式。我无法仅在此列中查询我的所有解析对象(池帐户)。

使用此代码,我可以打印出每个对象,但我无法仅访问服务历史列。

var query = PFQuery(className:"PoolAccount")
query.selectKeys(["serviceHistory"])
query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in

  if let objects = objects as? [PFObject] {

    self.serviceHistory = objects
    print("these are the selectedKeys \(objects)")

   //THIS PRINTS THE WHOLE OBJECT, AND NOT JUST THE SELECTED KEY."serviceHistory"

我希望仅打印服务历史记录,但找不到正确的查询来执行此操作...它是每个对象的 JSONS 数组。

这就是我要打印的内容。每个 Pfobject 都有一个 JSON 数组附加到它上面。所以我想我可能需要一个数组来把它放进去? [[PFObject]]?提前致谢。

【问题讨论】:

    标签: swift parse-platform pfquery


    【解决方案1】:

    查询将始终返回PFObject 的数组,您不能仅限于单个列。您可以对对象进行后处理以提取一个数组,该数组仅包含每个对象的该列内容:

    ... = objects.valueForKey("selectedKeys")
    

    【讨论】:

    • 我试过这个(可能是错误的方式),但“valueForKey”只适用于 1 个 PFObject,而不是数组中的所有 pfobjects...我如何将 JSON 的所有 pfobjects 数组合并为一个数组?
    【解决方案2】:

    想通了。我使用了一个 for 循环并遍历每个对象,然后使用 valueForKey 并将所有数字附加到一个数组中。

        for object in objects {
    
          if let dataObject:AnyObject = object.valueForKey("serviceHistory") {
          let thisJson = JSON(dataObject)
    
          for (_, entry) in thisJson {
    
            if let freeChlorineJson = entry["freeChlorine"].string {
    
              self.freeChlorine.append(freeChlorineJson)
              print(self.freeChlorine)
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多