簡體   English   中英

如何從 Swift 中的 Parse 查詢結果訪問對象的字段?

[英]How do you access an object's fields from a Parse query result in Swift?

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';您的意思是使用 'as' 強制向下轉換嗎?”

然后我應用了修復,新的錯誤是“類型‘PFObject’不符合協議‘SequenceType’

還嘗試在循環內向下轉型

let pf = object as PFObject

但這似乎無濟於事,因為當我這樣做時

let name = pf["name"]

我得到“'AnyObject' 不能轉換為'String'”

謝謝你的幫助。 我確定我遺漏了一些明顯的東西,因為我還沒有找到任何東西;

您需要顯式轉換您正在檢索的屬性 -

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM