【问题标题】:Swift: How to properly serve a Realm in deploymentSwift:如何在部署中正确地服务领域
【发布时间】:2016-02-08 17:52:04
【问题描述】:

我有一个用 Swift 编写的 iOS 应用程序,使用 Realm 作为数据库,在我的计算机上本地运行。

现在,当我从 Realm 进行读取和写入时,我相信它是从我计算机上的本地文件读取和写入。显然这在部署中是行不通的,因为 Realm 文件需要对每个用户都相同,并且每个用户都可以更改 Realm,所以看来 Realm 必须在服务器上。

我怎样才能使当用户对 Realm 执行读取和写入操作时,它会映射到服务器上的 Realm 文件。我应该使用什么类型的服务器?我目前有一个 Amazon S3 帐户,我是否应该将 Realm 文件存储在存储桶中,并在有人进行更改时下载并重写 Realm 文件(尽管这似乎非常低效)?

编辑:

用更简单的方式问这个问题,在服务器上的 iOS 应用程序中存储用户数据的标准方法是什么?

【问题讨论】:

  • 让一群用户在进行更改时下载和重写文件听起来很紧张
  • 那么 Facebook 是如何实现的呢?它们允许用户在他们的手机上创建帖子,然后更新到其他人的手机上等等。 Twitter、LinkedIn 和其他一百万个应用程序也是如此。对我来说,这似乎是基本功能。
  • 我想他们会在表中添加行并将它们推送到其他人的手机,或者其他人的手机每隔一段时间就会提取数据。可能还有某种机制可以协调如此多的用户同时向同一张表添加内容。
  • @WillM。是的,它们被称为websockets

标签: ios database swift deployment realm


【解决方案1】:

this answer。不幸的是,您的提议似乎不可能,至少目前是这样。

对于您提出的建议,您最好使用更传统的服务器端数据库。

编辑:

用更简单的方式问这个问题,在服务器上的 iOS 应用程序中存储用户数据的标准方法是什么?

这是一个相当广泛的问题,但通常在服务器上保存数据是通过使用您自己的自定义 API + 后端或使用后端 SaaS(例如即将失效的 Parse,或AWS.

如果您想将用户数据存储在服务器上,您需要通过前端的网络请求来执行此操作,并且您的 API 会相应地修改数据库。您将永远直接在前端修改数据库。

【讨论】:

  • 你对我应该具体使用什么有什么建议吗? Core Data 或 SQLite 是我想要的可靠选择吗?
  • 如果您不希望有太多流量,SQLite 可能是一个不错的选择。
  • @rigdonmr Realm 是一个移动数据库,因此基本上是 Core Data 的替代品,它并不是真的要用作服务器端数据库,而是将数据本地存储在设备上。我还更新了我的答案以反映您的编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-06
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 2018-04-06
  • 1970-01-01
相关资源
最近更新 更多