首页 > 解决方案 > Swift:标签文本问题(获取相同数组的不同计数)来自 API 的响应

问题描述

我正在开发一个巴士票预订应用程序。我正在尝试按照下图在我的标签上显示文本。

在此处输入图像描述

因此,当用户填写所需数据(来源城市、目的地城市和旅程日期)并点击提交按钮时,下一个UIViewController将显示该特定日期的过滤巴士路线。

在此处输入图像描述

但每次标签显示 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(). 我对我的numberOfRowsInSectiontableView 方法使用相同的数组 Count。这是代码表方法代码。

表视图方法:

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

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

那么为什么它显示相同数组的不同计数?有这样的并发问题吗?

标签: iosjsonswiftapi

解决方案


实际上可变数组的计数取决于时间,我的意思是它像下面这样变异

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

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

击球手的做法是:

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

推荐阅读