file dự án:
https://jumpshare.com/v/Otai3BBXYwfvyz8jb53kđộng Tạo tế bào UITableView và Headrs
(Sẽ là khôn ngoan để xem những để xem cấu trúc của dự án)
Vấn đề:
Ok, vì vậy tôi theo sau một tutorial tạo UITableView với tiêu đề và sau đó là nội dung ô.
Mã hoạt động và chạy tốt, Bây giờ tôi muốn mở rộng ngoài hướng dẫn đó và tự động tải nội dung đó bằng alamofire và SwiftyJSON.
Trong hướng dẫn này, các mã được sử dụng là như vậy:
func getSectionsFromData() -> [Sections] {
var sectionsArray = [Sections]()
let animals = Sections(title: "Animals", objects: ["Cats", "Dogs", "Birds", "Lions"])
sectionsArray.append(animals)
return sectionsArray
}
Những gì tôi cố gắng làm là:
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)
}
}
Nếu tôi in ra kết quả họ hiển thị trong giao diện điều khiển - vì vậy tôi biết việc nhận và lặp của JSON hoạt động. sau đó tôi thêm vào trong
let title = year
let objects = content
sectionsArray.append(Sections(title: title, objects: objects))
Nhưng trên dòng này:
sectionsArray.append(Sections(title: title, objects: objects))
tôi nhận được lỗi này:
cannot convert value of type 'JSON' to expected argument type '[String]'
Đây là JSON Tôi đang sử dụng:
{"posts": [
{
"Category1": [
"Post1cat1"
],
"Category2": [
"Post1cat2",
"Post2cat2"
]
}
]}
Ai đó có thể giúp tôi? Tôi có thể đi sai hướng ở đây Tôi muốn lặp qua JSON và hiển thị các danh mục dưới dạng tiêu đề và các bài đăng trong một ô của bảng.
chỉnh sửa: 1/29/2016
như vậy, tôi đã thay đổi vòng lặp để:
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!}))
}
}
}
Vẫn không có may mắn. Khi tôi thêm ở một số bản in (dưới: sectionsArray.append) để kiểm tra nếu có dữ liệu:
print("--")
print(title)
print(objects.self.arrayValue.map { $0.string!})
print(Sections(title: title, objects: objects.self.arrayValue.map { $0.string!}))
tôi nhận được kết quả này trong bảng điều khiển
--
Category1
["Post1cat1"]
Sections(headings: "Category1", items: ["Post1cat1"])
--
Category2
["Post1cat2", "Post2cat2"]
Sections(headings: "Category2", items: ["Post1cat2", "Post2cat2"])
nào cho thấy rằng thông tin là có, tuy nhiên khi tôi chạy ứng dụng vẫn không có kết quả nào, nó chỉ là JSON và phần được xác định ban đầu ở trên.
Vấn đề không phải với phân tích cú pháp, đã hoạt động tốt. vấn đề đã khiến họ hiển thị trong bảng. nó không cập nhật. – MarkP
Vui lòng thử phần sau sau tiêu đề UPDATE.'Làm việc cho tôi' :) –