У меня есть массив словарей var songsByLetters = [(key: String, value: [Song])]()
, пользователь выбрал песню и поместит ее в избранное.Поэтому мне нужно будет изменить выбранную песню id
isFaved
boolean на true
.
До того, как у меня появится массив объектов песни без первых букв песни в качестве ключей к новому словарю.И я делал это, когда пользователь нажимал кнопку фаворита.
@IBAction func favButtonTapped(_ sender: UIButton) {
dbSongs.filter({$0.id == selectedSongId}).first?.isFaved = sender.isSelected
}
Теперь, когда у меня есть словари, я пытаюсь сделать это, но это не только правильный путь, и у меня, конечно, есть ошибка.
Невозможно преобразовать значение типа '()?'чтобы закрыть тип результата 'Bool'
songsByLetters.filter{$0.value.filter{$0.id == selectedSongId}.first?.isFaved = sender.isSelected}
Я понимаю ошибку, но я не знаю, как отфильтровать этот словарь и изменить атрибут isFaved
этой определенной песни id
Вот структура песни:
[
"H":[
{
"id": 2134,
"name": "Happy Brithday",
"artist": "Paul Anka",
"isFaved": false,
"code": "380dj0a"
},
{
"id": 38304,
"name": "How can i stop loving you",
"artist": "Savage Garden",
"isFaved": false,
"code": "kkdj0a"
}
]
]