我已经设置了一个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()
}
答案 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)