#ios #json #swift #uitableview
#iOS #json #swift #uitableview
Вопрос:
Я пытаюсь создать динамические заголовки разделов для моего TableView. Я хочу получить все имена символов, а затем получить первую букву имени для создания sectionIndexTitles, но у меня возникают трудности с этим.
Я получаю JSON из URL:
func downloadJSON(completed: @escaping () -> ()) {
let url = URL(string: "mytestURL")
let configuration = URLSessionConfiguration.ephemeral
let session = URLSession(configuration: configuration)
session.dataTask(with: url!) { (data, response, error) in
if error == nil {
do {
characters = try JSONDecoder().decode([CharacterStats].self, from: data!)
DispatchQueue.main.async {
completed()
}
} catch {
print("JSON Error")
}
}
}.resume()
}
JSON выглядит следующим образом:
[
{
"name": "Batman",
"type": "DC",
"gender": "male",
},
{
"name": "Captain America",
"type": "Marvel",
"gender": "male",
},
{
"name": "Captain Marvel",
"type": "Marvel",
"gender": "female",
}
]
И моя структура выглядит так:
public struct CharacterStats: Decodable {
let name: String
let type: String?
let gender: String?
}
Комментарии:
1. Какую ошибку вы получаете? Можете ли вы попробовать «общедоступные данные символов структуры: кодируемые?»
2. @achu ошибки как таковой нет. Я не уверен, как получить только имена, чтобы иметь возможность извлекать первую букву для заголовков индексов.
Ответ №1:
Я опубликовал пример кода для этого здесь https://github.com/achuaswani/ListItemExample.git