如何从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!) } }