【问题标题】:ios swift parse: get data out of parse and use themios swift parse:从解析中获取数据并使用它们
【发布时间】:2015-02-25 12:17:42
【问题描述】:

我仅在文档中发现查询如何选择数据。 据我所知,只有一种方法可以收集一个或多个结果:

var query = PFQuery(className:"GameScore")
query.whereKey("playerName", equalTo:"Sean Plott")
query.findObjectsInBackgroundWithBlock {
  (objects: [AnyObject]!, error: NSError!) -> Void in
  if error == nil {
    // The find succeeded.
    NSLog("Successfully retrieved \(objects.count) scores.")
    // Do something with the found objects
    for object in objects {
        NSLog("%@", object.objectId)
    }
  } else {
    // Log details of the failure
    NSLog("Error: %@ %@", error, error.userInfo!)
  }
}

我无法弄清楚(因为我是初学者!)是如何访问对象数据。假设我有“名称”字段,我怎样才能得到它?什么是正确的语法?特别是如果我有超过 1 个结果?

为了一个结果,我会做:

var name = object["name"] as String
myArray.append(name)

即使这样也不对吗?在循环中使用“var xx = xx”?

如果我有多个结果,我该怎么办?

其他想法: 声明变量名称:字符串!在我进行查询之前,然后:

name = object["name"] as String
self.myArray.append(name)

返回错误:[String] 类型的不可变值只有名为 'append' 的变异成员

使用查询返回的数据“工作”的正确方法是什么?

另一个问题:由于这些查询是异步的,它们稍后完成并且该方法更早地“完成”,这样当显示视图时我的名称数组为空并且我在稍后阶段接收数据。在将视图交付到设备之前,让所有数据可用的最佳做法是什么?

非常感谢!!

【问题讨论】:

    标签: ios arrays swift object parse-platform


    【解决方案1】:

    您可以在对象上使用objectForKey。因此,您可以使用:

    而不是使用var name = object["name"] as String
    for object in objects {
        var name = object.valueForKey("name") as String
    }
    

    但其他部分绝对没问题。您可以在代码中的某处创建一个数组,然后将对象添加到其中。为此,您可以遍历对象并将对象添加到数组中。像这样:

     if error == nil {
        // The find succeeded.
        NSLog("Successfully retrieved \(objects.count) scores.")
        // Do something with the found objects
        for object in objects {
            var name = object["name"] as String
            myArray.append(name)
        }
      }
    

    因为您可以重用var name,因为每个循环元素都将被填充到变量名中并会删除最后一个值。但是该数组将获得附加的新值。例如:

    1. 第一个循环。 objects 的第一个索引处的值被加载到 object 中。例如,值为“John”。
    2. 变量name 的值现在是当前循环的对象["name"] 的值。所以name 的值是John
    3. 现在您将值添加到数组中。
    4. 第二个循环开始,第二个元素被加载到object 中,现在有字符串Michael。
    5. 变量name 的新值现在是object 的值。所以name 的值现在是Michael

    等等。

    【讨论】:

    • 在这里的另一篇文章中,我正在阅读 object["name"] 是另一种方式并且没有错?这真的是在循环中使用 var 的方法吗?如何将结果数据附加到数组中?
    • 您可以使用 addObjectsFromArray 将其添加到 NSMutableArray。我真的不知道它是否也这样工作,但我按照我向你展示的那样做了,并且在我的应用程序中它正在工作。
    • 非常感谢!这对我帮助很大!
    • 为了避免这些错误,我忘记添加 var myArray = [String]()。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2021-11-06
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多