首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >迅速制作词典

迅速制作词典
EN

Stack Overflow用户
提问于 2016-07-06 08:28:36
回答 4查看 14.7K关注 0票数 14

我有一个来自Parse的对象,我希望将它的列保存到Dictionary或其他什么东西中(如果更好的话)。

我想要一本这样的字典:["name" : "Mike", "lastname" : "vorisis", "id" : "advsas"]

下面是用于获取结果的代码:

代码语言:javascript
运行
复制
func queryEvents() {
    let query = PFQuery(className: "eventController")
    query.limit = 1000
    query.includeKey("idEvent")
    query.includeKey("eventType")
    query.includeKey("idEvent.idMagazi")
    query.findObjectsInBackgroundWithBlock { (objects, error)-> Void in
        if let objects = objects  {
            for object in objects {
                var post = object["idEvent"] as? PFObject
                var post2 = post!["idMagazi"]
                print("retrieved related post: \(post2["name"]!)")
            }
        }
    }
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-07-06 09:47:07

我终于发现了我该怎么做。

我用了一个结构来实现我想要的样子:

代码语言:javascript
运行
复制
var userDictionary = [Int : Event]()
struct Event {
        var nameEvent: String
        var nameMagazi: String


    }

然后我用这个:

代码语言:javascript
运行
复制
  if let objects = objects  {
                for object in objects {

                    let post = object["idEvent"] as? PFObject
                    let post2 = post!["idMagazi"] as? PFObject

                    let nameEvent = post!["name"] as! String
                    let idEvent = post?.objectId
                    let nameMagazi = post2!["name"] as! String

                     self.events[self.i] = Event(nameEvent: nameEvent , nameMagazi: nameMagazi)

                    self.i += 1
                }
                print(self.events[1]!.nameEvent)
            }

谢谢大家的回答!

票数 5
EN

Stack Overflow用户

发布于 2016-07-06 09:32:27

在Swift中,Dictionary<T,V>等同于[T: V]。如果未显式声明类型,则推断类型。

空字典创建(全部等效):

代码语言:javascript
运行
复制
var dict1: Dictionary<String, String> = [:]
var dict2: [String: String] = [:]
var dict3 = Dictionary<String, String>()
var dict4 = [String: String]()

带有值的字典(全部等效):

代码语言:javascript
运行
复制
var dict5 = ["Foo": "Bar", "Foo1": "Bar1", "Foo2": "Bar2"]
var dict6: Dictionary<String, String> = ["Foo": "Bar", "Foo1": "Bar1", "Foo2": "Bar2"]
var dict7: [String: String] = ["Foo": "Bar", "Foo1": "Bar1", "Foo2": "Bar2"]

向现有字典添加值:

代码语言:javascript
运行
复制
dict["Foo"] = "Bar"

在您的特定场景中,您可以使用以下内容:

代码语言:javascript
运行
复制
let dict = ["name" : name, "lastname" : lastname , "id" : id]

其中namelastnameidString变量。

基于your own answer的更新

具有这种结构的:

代码语言:javascript
运行
复制
struct Event {
    var nameEvent: String
    var nameMagazi: String
}

您可以使用这种方法,避免使用外部索引,并使用数组而不是字典来存储结果。

代码语言:javascript
运行
复制
var events: [Event]?

guard let objects = objects else { return }
events = objects.map { object in
    let post = object["idEvent"] as? PFObject
    let post2 = post!["idMagazi"] as? PFObject

    let nameEvent = post!["name"] as! String
    let idEvent = post?.objectId
    let nameMagazi = post2!["name"] as! String

    return Event(nameEvent: nameEvent , nameMagazi: nameMagazi)
}
票数 5
EN

Stack Overflow用户

发布于 2016-07-06 08:59:18

创建这样的字典:

代码语言:javascript
运行
复制
var dict = ["name" : "Mike", "lastname" : "vorisis" , "id" : "advsas"]

代码语言:javascript
运行
复制
var dict = Dictionary<String,String>
dict.setValue("Mike", forKey: "name")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38219458

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档