0

新しいエントリを追加しようとしている、より「複雑な」辞書があります。辞書コードは次のとおりです。

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

しかし、「致命的なエラー: 配列インデックスが範囲外です」というメッセージが表示されました。いくつかの例を見ましたが、すべてがより単純な辞書を扱っているようです。私は何が欠けていますか?

4

2 に答える 2

2

最初に辞書のインスタンスを作成し、それを配列に追加する必要があります。次に、キーと値のペアを追加できます。

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"])

配列に新しい要素を追加しないと、次のインデックスを参照しようとすると範囲外になります。

于 2016-02-21T01:53:18.580 に答える