[英]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.