I connected to API using Alamofire and SwiftyJson.
I got this JSON return:
{
"contacts": [
{
"id": "c200",
"name": "Ravi Tamada",
"email": "[email protected]",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
},
{
"id": "c201",
"name": "Johnny Depp",
"email": "[email protected]",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
},
{
"id": "c202",
"name": "Leonardo Dicaprio",
"email": "[email protected]",
"address": "xx-xx-xxxx,x - street, x - country",
"gender" : "male",
"phone": {
"mobile": "+91 0000000000",
"home": "00 000000",
"office": "00 000000"
}
}
]
}
This is my ViewController code:
import UIKit
import Alamofire
import SwiftyJSON
class ViewController:UIViewController {
@IBOutlet weak var tblJSON: UITableView!
var arrRes = [[String : AnyObject]]()
override func viewDidLoad() {
super.viewDidLoad()
getRequest()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func getRequest() {
Alamofire.request("http://api.androidhive.info/contacts").responseJSON { (responseData) -> Void in
if ((responseData.result.value) != nil) {
let swiftyJsonVar = JSON(responseData.result.value!)
if let resData = swiftyJsonVar["contacts"].arrayObject {
self.arrRes = resData as! [[String : AnyObject]]
}
if self.arrRes.count > 0 {
self.tblJSON.reloadData()
}
}
}
}
//MARK: tableView
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrRes.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "Cell")!
var dict = arrRes[indexPath.row]
cell.textLabel?.text = dict["name"] as? String
cell.detailTextLabel?.text = dict["email"] as? String
return cell
}
}
I have trouble displaying result on the UITableView.
Can anyone help me? Thanks!
numberOfRowsInSectioncellForRowAtare this method get called ?ViewControlleras the delegate and datasource of your tableView in the storyboard? 2. Did you set overridenumberOfSectionsInTableView:returning 1 ?reloadDataon the main queue.numberOfSectionsInTableViewif you only have one section. That is the default.