向 "complex" 词典添加新条目
Add new entries to a "complex" dictionary
我有一本 "complex" 字典,我正在尝试向其中添加新条目。词典代码如下:
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
但收到 "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
您需要先创建一个字典实例并将其添加到数组中,然后您可以向其中添加 key:value 对:
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"])
如果您不向数组追加新元素,那么当您尝试引用下一个索引时,它将超出范围。
我有一本 "complex" 字典,我正在尝试向其中添加新条目。词典代码如下:
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
但收到 "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
您需要先创建一个字典实例并将其添加到数组中,然后您可以向其中添加 key:value 对:
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"])
如果您不向数组追加新元素,那么当您尝试引用下一个索引时,它将超出范围。