В моем приложении для iOS я заполняю таблицу из внешнего файла json. Теперь это работает нормально, проблема, с которой я сталкиваюсь, заключается в том, что мне нужно отсортировать таблицу по алфавиту.
Я добавил метод сравнения, и печать его даст мне правильный вывод (список результатов, упорядоченный по их show_name
). Однако, когда я пытаюсь добавить эти результаты в таблицу, я получаю сообщение об ошибке.
Вот мой код:
func extract_json(_ data: Data)
{
let json: Any?
do{
json = try JSONSerialization.jsonObject(with: data, options: [])
}
catch{
return
}
guard let data_list = json as? NSArray else {
return
}
if let shows_list = json as? NSArray
{
for i in 0 ..< data_list.count
{
if let shows_obj = shows_list[i] as? NSDictionary
{
let show_name = shows_obj["show"] as? String
let show_image = shows_obj["thumbnail"] as? String
TableData.append(show_name!)
var sortedArray = TableData.sorted { $0.localizedCaseInsensitiveCompare($1) == ComparisonResult.orderedAscending }
print(sortedArray)
Если я изменяю TableData.append(show_name!)
на TableData.append(sortedArray)
, я получаю сообщение об ошибке «Не удается преобразовать значение типа '[String]?" к ожидаемому типу аргумента 'String' ".
Существует ли более безопасный / более умный способ алфавитизировать мой массив json по атрибуту перед загрузкой его в таблицу (чем пытаться загрузить его в TableData и затем сравнить, как я сейчас)?