1

我目前有一个 REST 端点,其中包含用于 sqlite 数据库的基本 CRUD 操作。

但是我的应用程序一次更新整个表(带有“保存”按钮)

我目前的想法/解决方案是先查询数据,比较数据,然后只更新改变的“行”。

该解决方案有点复杂,因为可以进行多种不同类型的更改:

  1. 添加行
  2. 删除行
  3. 行内容改变(类似于向上或向下移动的内容)

有没有更简单的解决方案?

最简单的解决方案有点脏。(删除表,创建表并添加每一行)

4

1 回答 1

0
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?

简单的答案是

是的,你是对的。

这正是你的做法。

实际上没有简单的方法可以做到这一点。

请注意,例如,Firebase 完全可以做到这一点。

Firebase 价值数十亿美元,远非完美,它是由周围最聪明的人创造的。从字面上看,它确实可以完全按照您的要求进行。

同样,对于您的要求,实际上没有简单的解决方案!

一些一般性阅读:

关于这方面的少数体面文章之一:

  1. https://www.objc.io/issues/10-syncing-data/data-synchronization/

其次,您需要熟悉 Firebase,因为现在计算的正常部分是使用 baas 同步解决方案(例如 Firebase,通常是一些 noSql 解决方案),或者实际上是手动完成。

  1. http://firebase.google.com/docs/ios/setup/

(我不特别推荐Firebase,但你必须知道如何使用它,就像你必须知道如何做正则表达式一样,你必须知道如何编写 sql 调用。)

最后,如果没有 Core Data,您将无法制作逼真的 iOS 应用程序,

  1. https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CoreData/index.html

核心数据决不能解决您描述的问题,但实际上您将在概念上解决问题时使用它。

你可以享受境界,

  1. https://realm.io

这又是-确切地说-您描述的问题的解决方案。(这基本上是典型现代应用程序开发中的基本问题。)与 FBase 一样,即使您不喜欢它或决定在特定项目中不使用它,也需要熟悉它。

祝你好运!:)

于 2020-02-06T17:34:26.753 回答