SWIFT:从Parse检索数据并将其附加到键值字典

时间:2015-11-14 13:17:01

标签: ios swift xcode7

我从Parse检索数据,我想以下列格式将其附加到词典中 -

var guests = ["Event 1": ["Guest 1", "Guest 2", "Guest 3"], "Event 2": ["Guest 1", "Guest 2"], "Event 3": ["Guest 1", "Guest 2"], "Event 4": ["Guest 1", "Guest 2"]]

使用以下代码,我已经能够成功检索以下数据,但是我在解决如何将其附加到词典时遇到了问题 -

enter image description here

  //Retrieve guestlist data
    let query = PFQuery(className:"GuestList")
    query.whereKey("Family", equalTo: "Family 1")
    query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in

        if error == nil {

            if let objects = objects! as? [PFObject] {

                //print(objects)
                //self.objectArray.removeAll()

                for object in objects {

                    //what code should I add here to append the object values into the dictionary
                    print(object)

                }

                self.tableView.reloadData()
            }

        } else {

            print(error)
        }

    }

    }

}

有四个事件可以邀请特定的访客(在“(eventName)RSVP”列中用真/假表示)。如果邀请客人参加活动(即“(eventName)RSVP”为真),我希望将其附加到字典中)。我的问题是:

  1. 我如何定义字典?
  2. 我将使用哪些代码将检索到的数据附加到以下“键值”字典格式中? -

    var guests = [“Event 1”:[“Guest 1”,“Guest 2”,“Guest 3”],“Event 2”:[“Guest 1”,“Guest 2”],“Event 3” :[“Guest 1”,“Guest 2”],“Event 4”:[“Guest 1”,“Guest 2”]]

1 个答案:

答案 0 :(得分:1)

这个怎么样:

    func retrieveGuestlist() -> [String : [String]] {

        var guestList = [String : [String]]()

        let eventList = ["Hindu", "Reception", "Sangreet", "Tibetan"]
        for event in eventList { guestList[event] = [String]() }

        let query = PFQuery(className:"GuestList")
        query.whereKey("Family", equalTo: "Family 1")
        query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in
        if error == nil {
            if let family = objects {
                for guest in family {
                    for event in eventList {
                        if let invited = guest.valueForKey("\(event)RSVP") as? Bool {
                            if invited {
                                guestList[event]!.append(guest.valueForKey("GuestName") as! String)
                            }
                        }
                    }
                }
            }
        } else {
            print(error)
        }

        return guestList
    }