Я пытаюсь добавить элементы в словарь быстро, но ничего не вставляется. Пожалуйста, руководство
> Я пытаюсь вставить значения в словарь. Я попробовал 2 способа, в которых используются 2 переменные, а другой, в котором я непосредственно передаю значение в словаре. Оба не работают
for index in 0..<classes.count{
var classification = classes[index].className
var score = classes[index].score
//not working
self.classificationDictionary[classification] = score
//not working
self.classificationDictionary[classes[index].className] = classes[index].score
}
После закрытия это похоже на работу. Я не понимаю, как добавить значения в словарь.
classificationDictionary["abc"] = 131
print("dictionary : ",classificationDictionary)
print(classificationDictionary.count)
1 ответ
Попробуй это:
classificationDictionary.updateValue(classes[index].score, forKey: classes[index].className)
ваш код будет:
for index in 0..<classes.count{
var classification = classes[index].className
var score = classes[index].score
classificationDictionary.updateValue(score, forKey: classification)
}
Например:
class ViewController: UIViewController {
var classes = [
AnyClass(name: "pizza", score: 2.0),
AnyClass(name: "sushi", score: 3.0),
AnyClass(name: "potatoe", score: 4.0)
]
var classificationDictionary: [String: Double]!
override func viewDidLoad() {
super.viewDidLoad()
any()
}
func any() {
classificationDictionary = [String: Double]()
for index in 0..<classes.count {
if let name = classes[index].name, let score = classes[index].score {
classificationDictionary.updateValue(score, forKey: name)
}
print(classificationDictionary)
}
}
}
код пользовательского класса:
class AnyClass: NSObject {
var name: String?
var score: Double?
init(name: String?, score: Double?) {
if let name = name {
self.name = name
}
if let score = score {
self.score = score
}
}
}
Результат: Скриншот