显示来自服务器的应用程序URL结果数据

时间:2015-02-11 20:48:31

标签: ios uitableview swift nsurlsession

我已经设置了一个arduino服务器,它接收一个http请求,例如" 192.168.0.1/bulbON"并采取某些行动使我返回这种行动的结果。一切似乎工作正常,我在控制台中收到相应的消息:可选(灯泡1打开)

我想在我的应用程序中以表格视图或其他方式显示此信息。最好的方法是什么?

这是我的代码:

import UIKit
import Foundation

class ViewController: UIViewController {

@IBOutlet weak var ON: UIImageView!

@IBOutlet weak var OFF: UIImageView!


@IBAction fun lightON(sender: AnyObject) {

    ON.hidden = false;
    StatusLampada.hidden = true;

    let url = NSURL(string: "http://192.168.0.210/lightON")

    let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
        println(NSString(data: data, encoding: NSUTF8StringEncoding))
    }

    task.resume()


}


@IBAction fun lightOFF(sender: AnyObject) {


    ON.hidden = true;
    OFF.hidden = false;


    let url = NSURL(string: "http://192.168.0.210/bublOFF")

    let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
        println(NSString(data: data, encoding: NSUTF8StringEncoding))
    }

    task.resume()

}

2 个答案:

答案 0 :(得分:0)

最简单的方法是在视图控制器中拥有Array<String>属性,当您收到响应时,将字符串添加到数组中。

将字符串添加到数组后,请调用tableView.reloadData。这将导致表视图再次调用所有表视图数据源和委托方法。

此时,只需要从您的表格视图中自定义字符串数组中的单元格。

答案 1 :(得分:0)

假设您知道如何将UITableView添加到故事板并将其链接到视图控制器,您可以通过执行以下操作快速完成此操作:

//update class to conform to UITableViewDataSource protocol
class ViewController: UIViewController, UITableViewDataSource { 

使用属性观察器向类添加属性,该属性观察器会在您添加到数组时自动重新加载表。

var statusArray:[String] = [String]() { didSet { self.tableView.reloadData()} }

然后为UITableViewDataSource实现两个必需的方法:

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

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    var cell = tableView.dequeueReusableCellWithIdentifier("StatusCell", forIndexPath: indexPath) as! UITableViewCell
    cell.textLabel!.text = statusArray[indexPath.row]
    return cell
}

然后在完成处理程序中,而不是println(NSString(data: data, encoding: NSUTF8StringEncoding))

statusArray.append(NSString(data: data, encoding: NSUTF8StringEncoding) as! String)