файлы проекта:
https://jumpshare.com/v/Otai3BBXYwfvyz8jb53kДинамически Генерировать UITableView Клетки и Headrs
(Было бы целесообразно, чтобы просмотреть их, чтобы увидеть структуру проекта)
Проблема:
Ok, поэтому я после tutorial, который создает UITableView с заголовками, а затем содержимое ячейки.
Код работал и работает нормально. Теперь я хочу выйти за рамки этого учебника и динамически загружать этот контент с помощью alamofire и SwiftyJSON.
В учебнике, используемый код следующим образом:
func getSectionsFromData() -> [Sections] {
var sectionsArray = [Sections]()
let animals = Sections(title: "Animals", objects: ["Cats", "Dogs", "Birds", "Lions"])
sectionsArray.append(animals)
return sectionsArray
}
То, что я пытался сделать, это:
Alamofire.request(.GET, url).validate().responseJSON { response in
switch response.result {
case .Success:
if let value = response.result.value {
let json = JSON(value)
for (_, subJson) in json {
for (year, content) in subJson {
let title = year
let objects = content
sectionsArray.append(Sections(title: title, objects: objects))
}
}
}
case .Failure(let error):
print(error)
}
}
Если я распечатать результаты, которые они показывают в консоли - так что я узнайте, как работает и работает JSON. Затем я добавил в
let title = year
let objects = content
sectionsArray.append(Sections(title: title, objects: objects))
Но на этой линии:
sectionsArray.append(Sections(title: title, objects: objects))
Я получаю эту ошибку:
cannot convert value of type 'JSON' to expected argument type '[String]'
Вот является JSON Я использую:
{"posts": [
{
"Category1": [
"Post1cat1"
],
"Category2": [
"Post1cat2",
"Post2cat2"
]
}
]}
Кто-нибудь может мне помочь? Я мог бы пойти не в том направлении Я хочу пропустить JSON и отобразить категории как заголовки и сообщения в ячейке таблицы.
редактировать: 1/29/2016
так, я изменил цикл на:
for (_, subJson) in json {
for (index, data) in subJson {
for (title, objects) in data {
sectionsArray.append(Sections(title: title, objects: objects.self.arrayValue.map { $0.string!}))
}
}
}
Все еще не повезло. Когда я добавляю в некоторых печатных изданиях (в соответствии с: sectionsArray.append), чтобы проверить, есть ли данные:
print("--")
print(title)
print(objects.self.arrayValue.map { $0.string!})
print(Sections(title: title, objects: objects.self.arrayValue.map { $0.string!}))
Я получаю этот результат в консоли:
--
Category1
["Post1cat1"]
Sections(headings: "Category1", items: ["Post1cat1"])
--
Category2
["Post1cat2", "Post2cat2"]
Sections(headings: "Category2", items: ["Post1cat2", "Post2cat2"])
Это показывает, что информация есть, однако, когда я запускаю приложение, по-прежнему нет никаких результатов, он должен быть JSON только изначально определенного раздела и ячеек выше.
Проблема была не в синтаксическом разборе, это работало нормально. проблема заключалась в том, чтобы отобразить их в таблице. это не обновление. – MarkP
Пожалуйста, попробуйте также часть после заголовка UPDATE.'Работает для меня' :) –