Быстрый словарь: не удается полностью удалить запись

У меня есть словарь Swift, и я пытаюсь полностью удалить запись. Мой код выглядит следующим образом:

import UIKit

var questions: [[String:Any]] = [
    [
        "question": "What is the capital of Alabama?",
        "answer": "Montgomery"
    ],
    [
        "question": "What is the capital of Alaska?",
        "answer": "Juneau"
    ]
 ]

var ask1 = questions[0]
var ask2 = ask1["question"]

print(ask2!) // What is the capital of Alabama?

questions[0].removeAll()

ask1 = questions[0] // [:]
ask2 = ask1["question"] // nil - Should be "What is the capital of Alaska?"

Я использовал вопросы [0].removeAll(), чтобы удалить запись, но она оставляет пустую запись. Как я могу полностью удалить запись, чтобы не было следа?

1 ответ

Решение

В этом нет ничего плохого, вы говорите компилятору, который удаляет все элементы в Dictionary и работает нормально

questions[0].removeAll()

Но вы объявляете Array<Dictionary<String, Any>> или в сокращенном синтаксисе [[String: Any]] и вам нужно удалить запись из вашего массива тоже, если вы хотите удалить Dictionaryсм. следующий код:

var questions: [[String: Any]] = [
   [
    "question": "What is the capital of Alabama?",
    "answer": "Montgomery"
   ],
   [
    "question": "What is the capital of Alaska?",
    "answer": "Juneau"
   ]
]

var ask1 = questions[0]
var ask2 = ask1["question"]

print(ask2!) // What is the capital of Alabama?

questions[0].removeAll()

questions.removeAtIndex(0) // removes the entry from the array in position 0

ask1 = questions[0] // ["answer": "Juneau", "question": "What is the capital of Alaska?"]
ask2 = ask1["question"] // "What is the capital of Alaska?"

Я надеюсь, что это поможет вам.

Другие вопросы по тегам