Сокращение времени, необходимого для вычисления даты - PullRequest
0 голосов
/ 23 декабря 2019

Я запускаю следующий код в cellForRow, который выполняет вычисление даты на лету. Увидев некоторое заикание во время прокрутки, я запустил Time Profiler во время репликации заикания и определил, что этот бит моего кода является проблемой. Насколько я знаю, это лучший способ добиться получения двойной разницы в количестве дней, а затем преобразовать в число лет? Любые предложения о том, как сократить количество времени, которое требуется для улучшения прокрутки?

Ответы [ 2 ]

0 голосов
/ 23 декабря 2019

Форматеры даты всегда тяжелая задача для выполнения. Если мы выполняем внутри ячейки табличного представления, то столкнемся с проблемой прокрутки с табличным представлением. Подход для повышения производительности с использованием ячеек табличного представления + средства форматирования даты заключается в предоставлении окончательных значений данных для компонентов подпредставления ячейки табличного представления. Декорирование данных должно быть выполнено до присвоения значений ячейке табличного представления.

Вместо использования словаря используйте struct для предоставления данных в ячейку. При инициализации классов модели все работы форматеров даты должны быть выполнены.

Теперь массив классов модели будет передан в табличное представление для отображения таблицы.

0 голосов
/ 23 декабря 2019

Укажите значение по умолчанию, а затем используйте обработчик завершения, чтобы определить, когда вычисление завершено. затем используйте перезагрузку строк в indexpath. Это позволит пользователю прокручивать и вычислять значение в фоновом режиме. И как только значение будет рассчитано, оно перезагрузит ячейку, чтобы показать окончательное значение.

...