Swifyjson 与 tableview

Posted

技术标签:

【中文标题】Swifyjson 与 tableview【英文标题】:Swifyjson with tableview 【发布时间】:2016-03-19 23:51:30 【问题描述】:

我正在尝试使用 swiftyjson 在 url 上获取的 json 数据填充我的 tableview。我面临的问题是,我正在理解数组中的城市,但是当我在 table view 上使用它时,数据不显示。我该如何解决?(您可以通过单击 url 检查我的 json 的数据结构)。

  import UIKit
  import SwiftyJSON
  import  Alamofire



  class ViewController: UIViewController , UITableViewDelegate ,UITableViewDataSource 
 @IBOutlet var tableview: UITableView!

var data = [String]()
var numberofRows = 0

override func viewDidLoad() 
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

    Alamofire.request(.GET,  "http://android.goidx.com/search")
        .responseJSON ( response) -> Void in


            if let value = response.result.value 

                let json = JSON(value)


                for (index,json):(String, JSON) in json 
                    //Do something you want
                    self.numberofRows = json["city"].count


                    let city = json["city"].string! as String

                     self.data.append(city)
                   print(json["city"].stringValue)
                

    
    

    

override func didReceiveMemoryWarning() 
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.




func numberOfSectionsInTableView(tableView: UITableView) -> Int 
    return 1



func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 

    return numberofRows



func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell" , forIndexPath: indexPath) as  UITableViewCell

    if data.count != 0 
    cell.textLabel?.text =  data[indexPath.row]

    

    return cell
   




   

【问题讨论】:

【参考方案1】:

创建城市数组后,需要重新加载表格视图以刷新内容

tableView.reloadData()

同时改变你的数据源,numberOfRowsInSection 方法返回

self.data.count

我注意到返回的 json 中的城市键没有映射到数组。

【讨论】:

从 json 看,city 不是一个数组,因此计数不正确。更改您的 numberOfRowsInSection 以返回 self.data.count 。 是的!我确实将它更改为 self.data.count 但它没有显示在表格视图中。这就是我打印它时数据数组的输出方式,它给了我多个数组。[“其他县 - 不在美国”] [ “其他县 - 不在美国”、“宅基地”] [“其他县 - 不在美国”、“宅基地”、“多拉”] [“其他县 - 不在美国”、“宅基地”、“多拉”、“哈伦代尔"] 还确保 tableView.dataSource = self 是的,我已经将 tableview 连接到 viewcontroller 工作感谢!这就是我必须做的 json["city"].stringValue

以上是关于Swifyjson 与 tableview的主要内容,如果未能解决你的问题,请参考以下文章

LDAP 与 MYSQL .. JA-SIG CAS 与 LDAP 与 CAS 与 MySQL

python网络编程基础(线程与进程并行与并发同步与异步)

=与==&与&&| 与 || 的区别

与 0 进行比较与与某个值进行比较是不是更快?

三.工具与市场-债券与债务股票与公司

RESTfulREST 与 RESTful 理解与实践