如何从Swift中的Parse查询结果访问对象的字段?

Parse文档提供了使用Swift进行查询的示例,它们显示了一个访问诸如objectId或count之类的内置字段的示例,但是如何访问对象的某个列呢?

var query = PFQuery(className: "MyObject") query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in if !(error != nil) { for object in objects { println(object["name"]) } else { println("%@", error) } } 

获取错误“AnyObject”不能转换为string。

 object.objectForKey("name") 

还给出了一个错误:“无法find接受提供参数的”objectForKey“的重载”

现在我也尝试了“作为PFObject”或类似的东西,但它也会导致错误加上parsing的文档不会显示这样的东西。 “types'[AnyObject]'不能被隐式地转换为'PFObject';你的意思是使用'as'强制downcast?

然后我应用修复,新的错误是“types'PFObject'不符合协议'SequenceType'

也尝试了与循环内的下降

 let pf = object as PFObject 

但这似乎没有帮助,因为当我这样做

 let name = pf["name"] 

我得到“'AnyObject'不能转换为'string'”

谢谢你的帮助。 我确定我错过了一些明显的东西,因为我还没有find任何东西;

您需要明确地转换您正在检索的属性 –

 let name = pf["name"] as String 

这对我工作:

  var query = PFQuery(className: "People") query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in if error == nil { // query successful - display number of rows found println("Successfully retrieved \(objects.count) people") // print name & hair color of each person found for object in objects { let name = object["name"] as NSString let color = object["hairColor"] as NSString println("\(name) has \(color) hair") } } else { // Log details of the failure NSLog("Error: %@ %@", error, error.userInfo!) } }