Size: a a a

iOS Developers — русскоговорящее сообщество

2021 January 19

DY

Danil Y. in iOS Developers — русскоговорящее сообщество
Вовка
Именно это и нужно сделать.

Только вот в чём проблема написать код который будет дифы вытаскивать? Это же… ну… не сложно вроде
Проблемы нет, я просто не хочу велосипедить. Библиотек которые это умеют десятки, оптимальные и оттестированные алгоритмы написали до меня. Проблема которая возникает -- выше. Ваш реплай к ней отношения не имеет и не помогает 🤷
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Danil Y.
Столкнулся с тем, что UITableView при обновлении данных кидает ошибки в стиле "attempt to delete row 194 from section 0 which only contains 194 rows before the update". Использую библиотеку для вычисления diff-а между двумя списками и накатывания этих изменений на таблицу (перепробовал уже штуки три и проблема вряд ли в библиотеках). Проявляется чаще на iOS 12 (чем на iOS 14), и в основном когда айтемов больше сотни. В чём может быть причина и есть ли какое-то решение?
А ты вон про чё. В доке вроде это описано. и на wwdc было.

нужно правильно “накатывать” изменения. Вот и всё.
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
beginUpdate endUpdate?
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Вовка
Там есчо про докер есть статейка
гаде? ссылку?
источник

DY

Danil Y. in iOS Developers — русскоговорящее сообщество
Denis Kim
в любом случае спрашивать где ошибка не давая код бессмысленно
Вряд ли в моём коде есть что-то интересное. Вот он:

tableView.reload(
   using: StagedChangeset(source: messages, target: model.items),
   setData: { self.messages = $0 }
)
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
гаде? ссылку?
в тусовке там же
источник

DY

Danil Y. in iOS Developers — русскоговорящее сообщество
Denis Kim
как все не просто. ну тогда я бы апдейту руками выполнял, а не сравнивал массивы между состояниями
т.е. юзать reloadData? Это работает конечно, но хочется анимашек
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Danil Y.
Вряд ли в моём коде есть что-то интересное. Вот он:

tableView.reload(
   using: StagedChangeset(source: messages, target: model.items),
   setData: { self.messages = $0 }
)
Ну вот вам ваши и оттестированые либы, которые написаны за вас.
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Danil Y.
т.е. юзать reloadData? Это работает конечно, но хочется анимашек
это крайние меры
источник

DY

Danil Y. in iOS Developers — русскоговорящее сообщество
Вовка
Ну вот вам ваши и оттестированые либы, которые написаны за вас.
Все три автора трёх разных библиотек накосячили, угу
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
beginUpdate endUpdate?
Там уже давно есть применение ченджей разных и всё такое
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Danil Y.
Все три автора трёх разных библиотек накосячили, угу
Пф))))
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
а мож оно там меняется в каких-то левых потоках?
источник

DY

Danil Y. in iOS Developers — русскоговорящее сообщество
Неа, вызов всегда на main происходит
источник

AK

Anton K. in iOS Developers — русскоговорящее сообщество
Вовка
Там уже давно есть применение ченджей разных и всё такое
там это где? больше не нужны beginUpdate endUpdate?
источник

EM

Egor Markov in iOS Developers — русскоговорящее сообщество
Господь дал им RxSwift + RxDataSource, а они что творят…
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Danil Y.
Вряд ли в моём коде есть что-то интересное. Вот он:

tableView.reload(
   using: StagedChangeset(source: messages, target: model.items),
   setData: { self.messages = $0 }
)
действительно тут все прозрачно. уточните что у вас за модели и что у них по equatable протоколу
источник

A

Aleksandr in iOS Developers — русскоговорящее сообщество
rx-греховно!
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Egor Markov
Господь дал им RxSwift + RxDataSource, а они что творят…
Это дал не господь.
источник

В

Вовка in iOS Developers — русскоговорящее сообщество
Anton K.
там это где? больше не нужны beginUpdate endUpdate?
ну ему не релоад дату нужно дернуть, а точеные изменения применить к табличке.
источник