Я какое-то время использовал диффузный источник данных с UITableView
, и мне это нравится. Но сегодня я осознал одну проблему, присущую его дизайну. Чтобы использовать источник данных, доступный для распространения, необходимо генерировать и применять снимок при изменении данных. Если объем данных большой или, что более вероятно, объем данных не очень большой, но создание каждой точки данных занимает небольшое количество времени, накопленное время для создания моментального снимка станет заметным и приведет к ухудшению работы пользователя. Я не думаю, что старый API имел эту проблему, потому что функции делегатов вызывались только для элементов, которые должны отображаться на экране.
Поскольку это новая технология (она была введена для SwiftUI, верно?), Я не могу поверить, что это может иметь столь очевидное ограничение. Но из материалов, которые я могу найти на net, я не вижу, как это может решить эту проблему. В видео сеанса 220 WWD C 2019 докладчик упомянул, что он может прозрачно работать в фоновом потоке, но я не думаю, что это обязательно облегчит проблему во всех сценариях ios. Например, в сценарии ios, когда изменение данных инициируется взаимодействием с пользователем, обычно выполняется синхронная обработка данных и обновление пользовательского интерфейса, поэтому работа в фоновом режиме на самом деле не помогает.
Я думаю, что я должен пропустить что-то, но я не вижу, что это такое. Любое объяснение будет с благодарностью.