У меня есть вложенный словарь, необходимый для сохранения в UserDefaults и отправки в расширение.Структура словаря, как показано ниже:
let dict = [
"Sections" : [
["Title" : "Title1", "Items": ["item1-1", "item1-2", "item1-3"]],
["Title" : "Title2", "Items": ["item2-1", "item2-2", "item2-3", "item2-4"]],
["Title" : "Title3", "Items": ["item3-1"]],
]
]
Который успешно сохранен с помощью:
UserDefaults(suiteName: "group.identifier.test")!.setValue(dict, forKey: "savedDict")
Но теперь я хочу вернуть его и проверить, существует ли Title2, если да, то удалите его идобавьте еще раз с новыми пунктами
Я имел обыкновение делать следующее, но не могу вернуть заголовок:
let savedDict:[String:AnyObject] = UserDefaults(suiteName: "group.identifier.test")!.object(forKey: "savedDict") as! Dictionary
успешно, чтобы получить данные в разделе "Разделы" с помощью следующего кода
let savedSection = savedDict["Sections"]
print("Saved Section: \(savedSection)")
, но не удалось получить заголовок с помощью:
print("Saved Title: \(savedSection!["Title"])") *// return nil*
Я тоже пытался (ключ, значение), но выдал ошибку типа данных
for (key, value) in savedSection{ *// Type 'AnyObject?' does not conform to protocol 'Sequence'*
print("Key: \(key) Value: \(value)")
}
Могу ли язнаете, есть ли способ вернуть «Заголовок» для проверки и обновления?Я использую неправильный способ хранения такого рода вложенных данных?
Большое спасибо!