我只在文档中发现查询如何选择数据。 据我所知,只有一种方法可以收集 1 个或多个结果:
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”的可变成员
“处理”查询返回的数据的正确方法是什么?
另一个问题:由于这些查询是异步的,它们完成得较晚,方法“完成”得更早,这样,当显示 View 时,我的名称数组为空,我会在稍后阶段接收数据。在将 View 传送到设备之前让所有数据可用的最佳做法是什么?
非常感谢!!
最佳答案
您可以在您的对象上使用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
,因为每个循环元素都将填充到变量名中,并将删除最后一个值。但是数组将附加新值。例如:
- 第一个循环。
objects
的第一个索引处的值被加载到object
中。例如,值为“John”。 - 变量
name
的值现在是当前循环的对象["name"] 的值。所以name
的值为John
- 现在将值添加到数组中。
- 第二个循环开始,第二个元素被加载到
object
中,它现在有字符串Michael
。 - 变量
name
的新值现在是object
的值。所以name
的值现在是Michael
等等。
关于ios 快速解析 : get data out of parse and use them,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28718862/