ios - 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()
. 我对我的numberOfRowsInSection
tableView 方法使用相同的数组 Count。这是代码表方法代码。
表视图方法:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return routes.count
}
numberOfRow
但它现在显示为 0,如您在图像中看到的,我得到了正确的 count(4) 。
那么为什么它显示相同数组的不同计数?有这样的并发问题吗?
解决方案
实际上可变数组的计数取决于时间,我的意思是它像下面这样变异
var routes = [0,1,2]
print(routes.count) // 3
arr = []
print(routes.count) // 0
击球手的做法是:
var routes:[Trip] = [] {
didSet {
setValues() // update ui
}
}
推荐阅读
- java - Spring Cloud Stream - RabbitMQ 配置
- c++ - 使用随机数生成器选择数组值
- google-cloud-platform - 谷歌云中的自动扩缩实例
- spring-boot - Spring Security 标记库不适用于 JSF
- python - 访问多索引数据框中的列
- twitter-bootstrap - BootstrapVue 垂直对齐内容的最佳方式?
- c++ - updatePointCloud-function 导致 vector::reserve 的 std::length_error
- html - 内联多行文本
- database - MongoDB 根据数组列表过滤单个值
- reactjs - 如何在生产中为 Docs 插件的 React Storybook 启用 prop-types