Мне нужно изменить функцию поиска с фильтрации массива:
func filterContentForSearchText(searchText: String, scope: String = "All") {
if searchText != "" {
filteredName = CGCoins.shared.ids.filter {name in
return name.lowercased().contains(searchText.lowercased())}
} else { filteredName = CGCoins.shared.ids
}
}
для фильтрации словаря, который содержит символы и соответствующие им названия. В идеале я хочу иметь возможность искать и ключ, и значение, например, словарь (CGCoins.shared.coinDictionary) выглядит следующим образом:
["btc":"bitcoin","eth":"ethereum","ltc":"litecoin"...]
, поэтому я хочу иметь возможность выполнять поиск с помощью UISearchBar и иметь возможность выполнять поиск как «btc» и возвращать «биткойн», так и искать «биткойн», а также возвращать «биткойн».
Я пробовал это:
func filterNewForSearchText(searchText: String, scope: String = "All") {
if searchText != "" {
filteredName = CGCoins.shared.coinDictionary.filter {name in
return name.key == searchText}
} else { filteredName = CGCoins.shared.coinDictionary.values
}
}
но я получаю ошибку:
Невозможно присвоить значение типа '[String: String]' для типа '[String]'
Как я могу успешно отфильтровать словарь по ключу и значению и вернуть значение того, что ищется? Любые альтернативные решения также приветствуются.