【问题标题】:Retrieving parse.com data in Swift在 Swift 中检索 parse.com 数据
【发布时间】:2014-11-24 17:23:34
【问题描述】:

我已经能够通过 Swift 成功保存到 Parse,但是在检索数据时遇到了问题(所有关于检索的教程似乎都是针对 Obj-C 的)。

这是我的代码(ID 已编辑)。

Parse.setApplicationId("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", clientKey: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")


    var query = PFQuery(className: "EventObject")
    query.getObjectInBackgroundWithId(objectId: String!) {
        (event: PFObject!, error: NSError!) -> Void in

        if error == nil {
            println(event)

        } else {

        println(error)

        }

    }

我现在在这个类中有 4 条记录,但是如果我想提取所有记录的数据,如果我不确定 ID 是什么,如何使用 ID 获取对象?我假设我可以将它们作为数组顺序访问,但我不太清楚如何做到这一点,并且很困惑,因为我知道检索的唯一命令似乎需要知道 ID。

感谢您的帮助!

【问题讨论】:

    标签: swift parse-platform


    【解决方案1】:

    官方parse documentation解释了如何进行查询-swift中有示例代码。

    在你的情况下你必须使用findObjectsInBackgroundWithBlock:

    var query = PFQuery(className:"EventObject")
    query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in
      if error == nil {
        for object in objects {
            // Do something
        }
      } else {
          println(error)
      }
    }
    

    如果成功,它会向闭包提供与查询匹配的对象数组 - 因为查询中没有设置过滤器,所以它只返回所有记录。

    【讨论】:

    • 我收到此错误消息,/Users/MNurdin/Documents/iOS/xxxxx/Controllers/Profile/TableViewController.swift:40:15:无法使用类型为 '( ([AnyObject]!, NSError!) -> Void)'
    • 但是我们如何检索所有对象。我的意思是表格中的所有行?
    【解决方案2】:

    Swift 2.1 更新

    func fetchFromParse() {
        let query = PFQuery(className:"Your_Class_Name")
        query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
            if error == nil {
                for object in objects! {
                    // Do something
                }
            } else {
                print(error)
            }
        }
    
    
    }
    

    【讨论】:

      【解决方案3】:

      这是 Swift3.0 中获取对象的代码。

      let query = PFQuery(className: "Your_Class_Name")
          query.findObjectsInBackground { (objects, error) in
              if error == nil {
      
              }
              else {
      
              }
          }
      

      【讨论】:

        【解决方案4】:

        从解析中检索数据:swift 3

         let adventureObject = PFQuery(className: "ClassName")
            adventureObject.addAscendingOrder("objectId")
            var objectID: String = String()
            adventureObject.findObjectsInBackground(block: { (Success, error) in
            })
        

        【讨论】:

        • 请编辑您的答案以包含一些解释。仅代码的答案对教育未来的 SO 读者几乎没有作用。您的答案因质量低劣而在审核队列中。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-26
        • 1970-01-01
        • 2016-06-15
        • 2013-06-05
        • 1970-01-01
        相关资源
        最近更新 更多