在swift中为少数用户同步数据的最佳方法是什么?

时间:2016-05-19 13:44:11

标签: ios swift synchronization

正如标题所示,我正在寻找在少数人之间同步用户生成数据(整数,布尔,NSDates等)的最简单方法(此时,我只是想在两者之间共享数据)人)。在应用程序中,用户可以使用自定义对象的实例填充数组,并且此数据用于填充UITableview。假设选择组中的所有用户同步了他们的设备,他们都应该在tableview中看到相同的数据。

我最初的想法是写入共享Dropbox或Google云端硬盘文件夹中的json文件。然而,在网上浏览后,我发现这种方法可能会导致数据损坏。 Cloudkit仅允许公共或私人(单个帐户)同步,两者之间没有任何内容。我看过一些推荐使用Parse的帖子,但该服务现在正在逐渐消失。

有没有人知道(最好是免费的)这样做的方式?

2 个答案:

答案 0 :(得分:1)

您有几种选择:

CloudKit数据库 - CloudKit的数据库系统具有公共数据库的概念,可以完全满足您的需求。它也相当容易使用,而且是免费的#34;与Apple开发者帐户。唯一的缺点是它只适用于Apple设备(AFAIK)。

Firebase - Google的Firebase在概念和功能上与CloudKit基本相同,但在多个平台上运行。它与Google生态系统相关联,因此您的使用都需要提供Google帐户才能使用它,但这些日子这是一个小问题。

领域 - 从纯粹的可用性角度来看,Realm是BY FAR中我在iOS上看到的最简单的数据存储解决方案。但是,它的共享功能目前有限,CloudKit支持已安排,但目前只有this。如果您现在只需要本地存储 ,那么请务必将其保留在列表中。

无论您选择哪种引擎,用户都可以通过您自己的代码限制某些数据视图。我建议您使用创建者的用户名保存每条记录,然后使用另一个包含读/写权限的表,例如," maurymarkowitz"有" bobsmith,ronsmith,jonsmith"。您可以在登录时检索这些条目,然后将它们用作查询的输入,例如两个系统都用于获取记录。

答案 1 :(得分:0)

感谢所有有用的回复。我最终使用了cloudkit / coredata,它完全符合我的目的。我只是使用了公共选项,并为每组共享数据的用户提供了一个唯一标识符,该标识符附加到他们上传的任何记录中。当用户将其数据与云同步时,应用程序仅对包含用户标识符的那些记录执行查询。这样,即使多个用户不共享iCloud帐户,也可以在他们之间同步数据。