簡體   English   中英

ios快速解析:如何收集指針數據

[英]ios swift parse: how to collect pointer data

我有這個查詢:

        var query = PFQuery(className: "CardSet")
        query.whereKey("user", equalTo: PFUser.currentUser())
        query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in

            if (error == nil) {

                // found

            }else{
                println(error.userInfo)
            }
        }

結果看起來像這樣:

<CardSet: 0x7c892120, objectId: 2yty7cpnyF, localId: (null)> {
    ACL = "<PFACL: 0x7be65450>";
    lesson = "<Lesson: 0x7beaabd0, objectId: JV7trFTx5Z>";
    name = "I am your CardSet";
    public = 1;
    user = "<PFUser: 0x7be834a0, objectId: baz8ObNsmM>";
}

類“ CardSet”具有指向類“課程”的指針“課程”。 如何在查詢結果中提供Lesson.name? 還是我需要第二次查詢? 由於要解析的請求量很大,這會很糟糕...? 有什么更好的方法可以在一個查詢中獲取所有指向的數據?

您可以使用includeKey方法告訴Parse獲取相關對象:

var query = PFQuery(className: "CardSet")
query.whereKey("user", equalTo: PFUser.currentUser())
query.includeKey("lesson")
query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) in
    for cardset in objects {
        var lesson = cardset["lesson"] as PFObject
        var name = lesson["name"] as String
        println("retrieved related lesson: \(post) with name: \(name)")
    }
}

在文檔的“ 關系查詢”部分中提到。

您傳遞了一個對象數組,因此必須從該數組獲取CardSet:

query.findObjectsInBackgroundWithBlock { (objects, error) -> Void in
    if (error == nil) {
        for object in objects { //note: if objects is always of size 1, just use objects[0]
            var cardset = object as CardSet //get the entry
            var lesson = cardset.lesson
        }
    }else{
        println(error.userInfo)
    }
})

首先,您必須使用includekey,然后在findobjectwithdatablock中將數據另存為PFObject->如果數據為PFUser,另存為PFUser,否則另存為PFObject

范例:

var veriable  = (PFUser)() 
YourQueryFindObjectBlock {  
self.veriable = result["pointerCol"] as PFUser // if pointer has user data 
}

暫無
暫無

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

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