Подключение UITableView к JSON API

Я довольно новичок в Swift и пытаюсь подключить его к UITableView как можно лучше. Я решил использовать SwiftyJSON, который кажется простым. Мои объекты в объекте JSON могут выглядеть следующим образом:

{
    "id": "146",
    "title": "Esports site Streak provides prize-heavy alternative to traditional betting",
    "url": "http://www.dailydot.com/esports/streak-counter-strike-vulcun-betting/",
    "image_url": "//cdn0.dailydot.com/cache/bb/cc/bbccc49d8271f2f3ed4c40b45c0fe0c0.jpg",
    "date": "2015-04-10 22:07:00",
    "news_text": "test teeeext",
    "referer_img": "1"
}

До сих пор я начал с создания цикла, который создает цикл через все циклы в viewDidLoad

for (key: String, subJson: JSON) in jsonArray {

    println(subJson)

}

и после этого я создал класс для всех новостей, как показано ниже:

class News {
    var id: Int!
    var title: NSString!
    var link: NSString!
    var imageLink: NSString!
    var summary: NSString!
    var date:NSString!

    init(id: Int, title:NSString, link: NSString, imageLink:NSString, summary: NSString, date:NSString) {
        self.id = id
        self.title = title
        self.link = link
        self.imageLink = imageLink
        self.summary = summary
        self.date = date
    }
}

Однако я не уверен, что это лучший подход для создания этого? Какими будут мои следующие шаги, чтобы подключить его к UITableView?

1 ответ

Решение

Это должно дать вам представление о том, что делать. Сначала вам нужно будет создать массив. Затем вы будете создавать и добавлять объект News один за другим в этот массив. Затем вы будете использовать этот массив для источника данных вашего tableView. В вашем cellForRowAtIndexPath вы будете читать в новостных объектах и ​​отображать их данные.

var arrayNews = Array<News>()
self.tableView.dataSource = self

for (key: String, subJson: JSON) in jsonArray {
    // Create an object and parse your JSON one by one to append it to your array
    var newNewsObject = News()
    id:        = //
    title:     = //
    link       = //
    imageLink  = //
    summary    = //
    date       = //
    arrayNews.append(newNewsObject)
}
self.tableView.reloadData() // This will read in your arrayNews array

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("NewsCell") as! NewsCell
    let newsObject = self.arrayNews[indexPath.row] // Assuming this is 1 section

    // set all of your details here
    cell.labelBlahBlah.text = something
    return cell
}
Другие вопросы по тегам