试图在swift中构建restful应用程序

时间:2015-03-29 16:40:38

标签: json rest swift

我在快速编程方面相当新。我似乎无法想象如何拉取缩略图并在我的应用程序上显示它们。

我花了无数个小时,我发现没什么可靠的。我很肯定这个问题出在我的UITableView,但我不知道如何正确编码。任何和所有建议/帮助将不胜感激:

import UIKit

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

var tableData = []
@IBOutlet weak var redditListTableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    getRedditJSON("http://www.reddit.com/.json")
}

func getRedditJSON(whichReddit : String){
    let mySession = NSURLSession.sharedSession()
    let url: NSURL = NSURL(string: whichReddit)
    let networkTask = mySession.dataTaskWithURL(url, completionHandler : {data, response, error -> Void in
        var err: NSError?
        var theJSON = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSMutableDictionary
        let results : NSArray = theJSON["data"]!["children"] as NSArray
        dispatch_async(dispatch_get_main_queue(), {
            self.tableData = results
            self.redditListTableView!.reloadData()
        })
    })
    networkTask.resume()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func tableView(tableView: UITableView!, numberOfRowsInSection section: Int) -> Int {
    return tableData.count
}

func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
    let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "MyTestCell")
    let redditEntry : NSMutableDictionary = self.tableData[indexPath.row] as NSMutableDictionary
    cell.textLabel.text = redditEntry["data"]!["title"] as String
    cell.detailTextLabel.text = redditEntry["data"]!["author"] as String
    return cell
}
}

1 个答案:

答案 0 :(得分:0)

我不确定我的问题是否正确,但您似乎甚至没有尝试下载图片。检查提供的网址中的JSON(" http://www.reddit.com/.json"),尤其是"缩略图"在json中标记。复制粘贴到您的浏览器中,您就会看到图像。

您唯一需要做的就是加载图片(查看Loading/Downloading image from URL on Swift  如何在SWIFT中执行此操作并将其绑定到tableViewCell的imageView。