2016-01-20 67 views
1

我的数据,我想送表视图与alamofire一个(大量)和siftyJSON如何将数据发送到表视图与Alamofire而SwiftyJSON

Web请求:

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 
} 

}

Web请求:enter link description here

我想一些JSON数据发布到表视图,但是当我发送数据它没有返回。为什么??

回答

5

这是我工作的代码。主要的是你必须在api调用结束时重新加载表格。而要打印nuber为一个字符串,所以你必须把它转换成字符串

enter image description here

我的代码是在这里

import UIKit 

类customcell:UITableViewCell的{

@IBOutlet weak var lbl1: UILabel! 

@IBOutlet weak var lbl2: UILabel! 

}

class ViewController:UIViewController,UITable ViewDataSource,{的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() 
    } 
} 

}

+0

坦克你@Raj :) 一个问题我该如何将这些数据传递给多表视图? –

+0

谢谢@Raj :)。 –

1
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中显示的数据。

+0

坦克你。但我做这个惠特塞格。 –

+0

我如何使用这个json我创建多个嵌套表? –

+0

我不明白你的问题,你能解释一下吗? –