#ios #dictionary #properties #swift3 #plist
#iOS #словарь #свойства #swift3 #список
Вопрос:
Это из списка свойств, который я создал:
Я хочу загрузить только названия стран в массив. Вот код, который у меня есть на данный момент…
if let path = Bundle.main.path(forResource: "flagData", ofType: "plist") {
dict = NSMutableDictionary(contentsOfFile: path)
let currentGroup = (dict!["caribbean"] as AnyObject).allKeys as? [String]
}
Но это не работает — когда я его запускаю, currentGroup = nil
Я также пытался:
let currentGroup = dict?.allKeys(for: "caribbean")
Но это дает мне пустой массив.
Любые идеи будут оценены… Спасибо!
Комментарии:
1. Что о
dict
себе. Это ноль или он действительно содержит данные?2. Если
dict
нетnil
, войдитеdict.allKeys
в систему. Включает ли он ключ"caribbean"
?3. dict действительно содержит данные, а dict.allKeys включает «карибский бассейн»
Ответ №1:
if let path = Bundle.main.path(forResource: "flagData", ofType: "plist"),
let configurations = NSDictionary(contentsOfFile: path) {
variables = configurations[currentConfiguration] as! NSDictionary
}
Попробуйте приведенный выше код и внесите соответствующие изменения я думаю, что ошибка в вашем коде возникает, когда вы приводите его к сбою.
Комментарии:
1. Именно в приведении была проблема! Я попробовал AnyObject и [String:AnyObject], которые, как я думал, охватывали все основы, но, очевидно, нет. Спасибо!