【问题标题】:Data is not showing in table view数据未显示在表格视图中
【发布时间】:2017-01-26 07:34:35
【问题描述】:

我是 iOS 新手,从一些教程开始。但是当我尝试在tableview 中显示内容时,它没有显示。我所做的一切都像他们在那篇教程中所做的那样。但我仍然无法在表格视图中显示我的内容。

这里是我的教程链接:My link

这是我的代码:

import UIKit
import Alamofire

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!
    var nameArray = [AnyObject]()
    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.


        Alamofire.request("http://thecodeeasy.com/test/swiftjson.json").responseJSON { response in

            let result = response.result
            if let dict = result.value as? Dictionary<String,AnyObject>{
                if let mainDict = dict["actors"] {
                    self.nameArray = mainDict as! [AnyObject]
                   self.tableView.reloadData()
                }

            }


             }
    }



     func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
    {
        return nameArray.count
    }

     func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
    {

        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath as IndexPath) as? CustomTableViewCell

        let title = nameArray[indexPath.row]["title"]
        cell?.ContentName.text = title as? String
        return cell!
    }

}

【问题讨论】:

  • 在 swift 3.0 中吗?
  • 是的......
  • 将 Alamofire.request("thecodeeasy.com/test/swiftjson.json") 写入 viewdidappear 而不是 viewdidload
  • @sinha 您需要在 plist 文件中启用 NSAllowsArbitraryLoads。我只是将您的 API 实现到一个新项目中并发现了这个问题。请查看演示项目和详细信息的答案部分。

标签: ios iphone swift uitableview


【解决方案1】:

您没有获得数据的可能性有三种。 首先,您的应用数据源设置不正确。 请检查图像

其次,将您的 API 代码粘贴到 viewDidAppear 中并检查它是否正常工作

============= 重要============

第三,检查您的 info.plist 是否包含以下代码。 因为每当您拨打互联网电话时,您都应该将此代码放入您的 info.plist 文件中。

右击info.plist并作为源代码打开

粘贴以下代码

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

尝试运行应用程序。 让我知道它是否适合你。

请查看链接获取代码click here

谢谢

阿布舍克·夏尔马

【讨论】:

    【解决方案2】:

    在 viewDidLoad 顶部试试这个

    self.tableView.delegate = self
    self.tableView.dataSource = self
    

    【讨论】:

      【解决方案3】:

      正如我所见,您在视图控制器中使用了tableview。您应该将此tableview 的委托和数据源设置为self

      在你的视图控制器中写下这两行:

      self.tableView.delegate = self
      self.tableView.datasource = self
      

      您也可以使用 XIB 做到这一点。

      如果您已经这样做了或者那不起作用,请尝试打印您的 self.nameArray 并检查是否有预期的数据。

      【讨论】:

        猜你喜欢
        • 2018-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-10
        • 1970-01-01
        相关资源
        最近更新 更多