Swift 将新条目添加到“中”;复杂的;词典

Swift 将新条目添加到“中”;复杂的;词典,swift,swift-dictionary,Swift,Swift Dictionary,我有一本更“复杂”的字典,我正在尝试添加新条目。字典代码如下: var users: [[String:Any]] = [ [ "firstName": "Bill", "lastName": "G" ] ] 我尝试使用以下代码添加新条目: users[1]["firstName"] = "Steve" users[1]["lastName"] = "J" print(users) // fatal error: Array index out

我有一本更“复杂”的字典,我正在尝试添加新条目。字典代码如下:

var users: [[String:Any]] = [
    [
        "firstName": "Bill",
        "lastName": "G"
    ]
]
我尝试使用以下代码添加新条目:

users[1]["firstName"] = "Steve"
users[1]["lastName"] = "J"

print(users) // fatal error: Array index out of range

但是收到“致命错误:数组索引超出范围”我看了几个例子,但似乎都是处理更简单的字典。我错过了什么?

这在操场上起作用

var users: [[String:Any]] = [
    [
        "firstName": "Bill",
        "lastName": "G"
    ]
]

users[0]["firstName"] = "Steve"
users[0]["lastName"] = "J"

users
使用索引0,而不是像您使用的那样使用1,这会导致索引越界错误

还是更具活力的方法

var users = [[String:AnyObject]]()

let personA = ["Steve":"J"]
let personB = ["Foo":"Z"]

users.append(personA)
users.append(personB)

users

这在操场上起作用

var users: [[String:Any]] = [
    [
        "firstName": "Bill",
        "lastName": "G"
    ]
]

users[0]["firstName"] = "Steve"
users[0]["lastName"] = "J"

users
使用索引0,而不是像您使用的那样使用1,这会导致索引越界错误

还是更具活力的方法

var users = [[String:AnyObject]]()

let personA = ["Steve":"J"]
let personB = ["Foo":"Z"]

users.append(personA)
users.append(personB)

users

首先需要创建字典实例并将其添加到数组中,然后可以向其中添加键:值对:

var users: [[String:Any]] = [
  [
    "firstName": "Bill",
    "lastName": "G"
  ]
]

users.append([String:Any]())

users[1]["firstName"] = "Steve"
users[1]["lastName"] = "J"

print(users) // [["firstName": "Bill", "lastName": "G"], ["firstName": "Steve", "lastName": "J"]]
您甚至可以在一条语句中这样做:

users.append(["firstName": "Steve", "lastName": "J"])

如果未将新元素附加到数组中,则当您尝试引用下一个索引时,它将超出范围。

您需要首先创建字典实例并将其添加到数组中,然后可以向其添加键:值对:

var users: [[String:Any]] = [
  [
    "firstName": "Bill",
    "lastName": "G"
  ]
]

users.append([String:Any]())

users[1]["firstName"] = "Steve"
users[1]["lastName"] = "J"

print(users) // [["firstName": "Bill", "lastName": "G"], ["firstName": "Steve", "lastName": "J"]]
您甚至可以在一条语句中这样做:

users.append(["firstName": "Steve", "lastName": "J"])

如果您不将新元素附加到数组中,那么当您尝试引用下一个索引时,它将超出范围。

使用0覆盖第一个条目。要添加,您需要使用
append
+=
。使用0覆盖第一个条目。要添加,您需要使用
append
+=
。没有什么复杂的关于这个真的。这只是一系列字典,其实并不复杂。这只是一系列字典。