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

时间:2014-10-01 05:51:22

标签: ios swift parse-platform

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"不能转换为字符串。

object.objectForKey("name")

同样给出错误:"无法找到' objectForKey'接受提供的参数"

现在我也试过"作为PFObject"或类似的东西,但它也导致错误加上Parse的文档没有显示任何类似的东西。 "输入' [AnyObject]'不能隐含地向下转向PFObject&#39 ;;你的意思是使用'作为'强迫垂头丧气?"

然后我应用修复,新错误是"输入' PFObject'不符合协议' SequenceType'

尝试使用

在循环内向下转发
let pf = object as PFObject

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

let name = pf["name"]

我得到"' AnyObject'不能转换为' String'"

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

2 个答案:

答案 0 :(得分:7)

您需要显式转换要检索的属性 -

let name = pf["name"] as String

答案 1 :(得分:1)

这对我有用:

    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!)
        }
    }