The solution is a bit complex because there are several
different types of changes that can be done:
Add row
Remove row
Row content changed (similar to content moving up or down)
Is there a simpler solution?
Простой ответ:
Да, вы правы.
Именно так вы и делаете.
Буквально нет простого способа сделать this.
Имейте в виду, что, например, Firebase полностью существует для этого.
Firebase стоит миллиарды, далек от совершенства и был создан самыми умными людьми. Он буквально существует для того, чтобы делать именно то, что вы просите.
Опять же, буквально нет простого решения того, что вы просите!
Некоторое общее прочтение:
Один из горстки приличных статьи на эту тему:
- https://www.objc.io/issues/10-syncing-data/data-synchronization/
Во-вторых, вы захотите ознакомиться с Firebase, поскольку нормальная часть вычислений сейчас либо с помощью решений baas syn c (например, Firebase, обычно без решения Sql), либо действительно вручную.
http://firebase.google.com/docs/ios/setup/ (я не особенно рекомендую Firebase, но вы должны знать, как использовать его столько, сколько вам Вы должны знать, как выполнять регулярные выражения, и вы должны знать, как писать sql звонки.)
Наконец, вы не можете создавать c iOS приложений без Core Data,
https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreData/index.html Базовые данные ни в коем случае не решают описываемую вами проблему, но реально вы будете использовать ее, пока решаете проблему концептуально.
Вы можете наслаждаться царством,
https://realm.io , что опять-таки - точно - решение проблемы, которую вы описываете. (Это, в основном, основная проблема c в типичной разработке современных приложений.) Как и в случае с FBase, даже если вам это не нравится или вы не хотите go использовать его в конкретном проекте, нужно быть знакомым с ним. .
Удачи! :)