pliki projektu:
https://jumpshare.com/v/Otai3BBXYwfvyz8jb53kdynamicznego generowania Komórki UITableView i Headrs
(byłoby mądre, aby zobaczyć je zobaczyć strukturę projektu)
Problem:
Ok, więc jestem po tutorial, który tworzy UITableView z nagłówkami, a następnie zawartość komórki.
Kod zadziałał i działa poprawnie, Teraz chcę wykroczyć poza samouczek i dynamicznie wczytać tę zawartość za pomocą alamofire i SwiftyJSON.
W samouczku kod używany jest tak:
func getSectionsFromData() -> [Sections] {
var sectionsArray = [Sections]()
let animals = Sections(title: "Animals", objects: ["Cats", "Dogs", "Birds", "Lions"])
sectionsArray.append(animals)
return sectionsArray
}
Co próbowałem zrobić to:
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)
}
}
Gdybym wydrukować wyniki pokazują one w konsoli - tak ja znać otrzymywanie i zapętlanie prac JSON. Następnie dodaje się
let title = year
let objects = content
sectionsArray.append(Sections(title: title, objects: objects))
Ale na tej linii:
sectionsArray.append(Sections(title: title, objects: objects))
otrzymuję ten błąd:
cannot convert value of type 'JSON' to expected argument type '[String]'
Oto JSON Używam:
{"posts": [
{
"Category1": [
"Post1cat1"
],
"Category2": [
"Post1cat2",
"Post2cat2"
]
}
]}
Czy ktoś może mi pomóc? Być może podążę w niewłaściwym kierunku. Chcę przejść przez JSON i wyświetlić kategorie jako nagłówki i posty w komórce tabeli.
edit: 1/29/2016
więc zmieniłem pętlę do:
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!}))
}
}
}
nadal nie ma szczęścia. Kiedy dodać w niektórych odbitek (under: sectionsArray.append), aby sprawdzić, czy istnieją dane:
print("--")
print(title)
print(objects.self.arrayValue.map { $0.string!})
print(Sections(title: title, objects: objects.self.arrayValue.map { $0.string!}))
uzyskać ten wynik w konsoli:
--
Category1
["Post1cat1"]
Sections(headings: "Category1", items: ["Post1cat1"])
--
Category2
["Post1cat2", "Post2cat2"]
Sections(headings: "Category2", items: ["Post1cat2", "Post2cat2"])
który pokazuje, że informacja jest tam, Jednak gdy uruchomię aplikację, nadal nie ma wyników z JSON tylko pierwotnie zdefiniowana sekcja i komórki powyżej.
Problem z parsowaniem nie zadziałał. problem polegał na tym, że musieli je wyświetlić w tabeli. to nie jest aktualizacja. – MarkP
Spróbuj również część po nagłówku UPDATE.'Pracuje dla mnie' :) –