如何使用 Alamofire 和 SwiftyJSON 将数据发送到表视图
Posted
技术标签:
【中文标题】如何使用 Alamofire 和 SwiftyJSON 将数据发送到表视图【英文标题】:How to send data to table view with Alamofire And SwiftyJSON 【发布时间】:2016-01-20 20:59:18 【问题描述】:我有大量(大量)数据要使用 alamofire 和 siftyJSON 发送到表视图
网络请求:
let postEndPoint :String = "http://jsonplaceholder.typicode.com/posts/"
编码 Alamofire 和 SwiftyJSON:
override func viewDidLoad()
super.viewDidLoad()
Alamofire.request(.GET, postEndPoint).responseJSON response in
// handle json
guard response.result.error == nil else
print("error calling Get on /posts/1")
print(response.result.error)
return
if let value: AnyObject = response.result.value
let post = JSON(value)
// for i in 0...post.count
if let title = post["data"].arrayValue as? [JSON]
self.datas = title
self.tableView.reloadData()
print("the title is :\(title)" )
else
print("eror parsing /post/1 ")
//
代码表视图:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell")!
var dict = datas[indexPath.row]
cell.textLabel?.text = dict["userId"] as? String
cell.detailTextLabel?.text = dict["id"] as? String
return cell
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return datas.count
网络请求:enter link description here
我正在尝试将一些 json 数据发布到表视图,但是当我发送数据时它什么也没返回。为什么??
【问题讨论】:
【参考方案1】:这是为我工作的代码。主要的是你必须在 api 调用结束时重新加载表。并且您将 nuber 打印为字符串,因此您必须将其转换为字符串
我的代码在这里
import UIKit
自定义单元类:UITableViewCell
@IBOutlet weak var lbl1: UILabel!
@IBOutlet weak var lbl2: UILabel!
类 ViewController: UIViewController,UITableViewDataSource,UITableViewDelegate
@IBOutlet weak var tabledata: UITableView!
let postEndPoint :String = "http://jsonplaceholder.typicode.com/posts/"
var arr:NSMutableArray = NSMutableArray()
override func viewDidLoad()
super.viewDidLoad()
web()
// Do any additional setup after loading the view, typically from a nib.
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("customcell") as! customcell
let dict = arr[indexPath.row] as! NSDictionary
print(dict)
print(dict["userId"])
cell.lbl1?.text = String (dict["userId"]! )
cell.lbl2?.text = String (dict["id"]! )
return cell
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
return arr.count
func web()
request(.GET, postEndPoint, parameters: nil, encoding:
.JSON).responseJSON (response:Response<AnyObject, NSError>) -> Void in
print(response.result.value)
if (response.result.value != nil)
self.arr = (response.result.value) as! NSMutableArray
self.tabledata.reloadData()
【讨论】:
坦克你@Raj :) 一个问题我怎样才能将这些数据传递给多表视图?【参考方案2】:func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
if (tableView == tabledata)
let cell = tableView.dequeueReusableCellWithIdentifier("customcell") as! customcell
let dict = arr[indexPath.row] as! NSDictionary
cell.lbl1?.text = String (dict["userId"]! )
cell.selectionStyle = .None
return cell
else if(tableView == tablefactoryoption)
let cell1:Facturyoptioncell = tableView.dequeueReusableCellWithIdentifier("Facturyoptioncell") as! Facturyoptioncell
let dict = arr[indexPath.row] as! NSDictionary
cell1.lbl2?.text = String (dict["Id"]! )
cell1.selectionStyle = .None
cell1.selectionStyle = .None
return cell1
else
let cell2:Technicalcell = tableView.dequeueReusableCellWithIdentifier("Technicalcell") as! Technicalcell
let dict = arr[indexPath.row] as! NSDictionary
cell2.lbl3?.text = String (dict["userId"]! )
return cell2
这就是您可以使用多个 tableview 来显示数据的方式。
【讨论】:
坦克你。但我这样做是白色的。 如何使用这个 json 创建多个嵌套表? 我没有得到你的问题,你能解释一下吗? 如何用segue显示数据不止一种感觉以及如何从 alamofire 和 swiftyjson 构建模型对象并在 tableviewController 中使用?以上是关于如何使用 Alamofire 和 SwiftyJSON 将数据发送到表视图的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Alamofire 和 SwiftyJSON 将数据发送到表视图
如何使用 Alamofire 和 SwiftyJSON 正确解析 JSON
如何将 RxSwift 与 AlamoFire 和 SwiftyJSON 一起使用?