Swift: проблемы с текстом метки (получение различного количества одинаковых массивов) Ответ от API - PullRequest
0 голосов
/ 08 декабря 2018

Я занимаюсь разработкой приложения Bus Ticket Booking.Я пытаюсь показать текст на моей метке , как показано на следующем рисунке.

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().Я использую тот же массив Count для моего numberOfRowsInSection метода tableView.Вот код таблицы метода кода.

Метод TableView:

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

Но теперь он показывает 0, я получаю правильное количество (4) для моего numberOfRow, как вы можете видеть на изображении.

Так почему же он показывает разные значения одного и того же массива?Есть ли такая проблема с параллелизмом?

1 Ответ

0 голосов
/ 08 декабря 2018

На самом деле количество изменяемых массивов зависит от времени, я имею в виду, что оно мутировало, как показано ниже

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

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

Подход Баттера:

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