Swift:来自API的标签文本问题(获取相同数组的不同计数)响应

时间:2018-12-08 07:20:06

标签: ios json swift api

我正在开发公交车票预订应用程序。我正尝试按照以下图片在标签上显示文本。

enter image description here

因此,当用户填写所需的数据(源城市,目的地城市和旅程的日期)并单击“提交”按钮时,下一个UIViewController随该特定日期的过滤器公交路线一起显示。

enter image description here

但是每次标签显示0个计数。以下是我的标签文本代码。

  

标签代码:

func setValues() {
    let count2 = routes.count
    DispatchQueue.main.async { [unowned self] in
        self.lblRoute.text = (String(count2) + "Trip(s) Available on" + Utill.getStringFromDate("  dd MMMM yyyy,EEEE", date: self.currentDate))
    }
}

然后我在viewDidLoad()中调用此函数。我为numberOfRowsInSection tableView方法使用了相同的数组Count。这是代码表方法代码。

  

TableView方法:

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

但是现在显示0,正如您在图片中看到的那样,我为numberOfRow得到了正确的count(4)。

那么为什么要显示相同数组的不同计数?是否存在类似的并发问题?

1 个答案:

答案 0 :(得分:0)

实际上可变数组的数量取决于时间,我的意思是它的变异如下所示

var routes = [0,1,2]
print(routes.count) // 3

arr = []
print(routes.count) // 0

击球员的方法是:

var routes:[Trip] = [] {
    didSet {
        setValues() // update ui
    }
}