2016-03-02 64 views
1

我正在致力于iOS应用程序的更新,其中用户可以看到不同的视频,所以我也希望很快添加tvOS版本。简单的方法来同步键值信息与SWIFT

我想添加一种方法来同步“”观看的“状态VideoObject。 我的VideoObject确实有一个VideoObject.id,我会添加一个VideoObject.watched_status作为Bool现在我有不同的想法如何保存这些信息,也可能如果可能在tvOS上使用它们。

  1. 火力地堡 - 这将要求用户创建一个登录/我产生一个userkey,他可以与其他设备同步(输入userkey其他设备),否则信息将只在一台设备上可用。

  2. NSUserDefaults - 也许最简单的方法,但不是很灵活。也不容易同步

  3. CloudKit - CloudKit可用于存储这些信息(privat)并自动将这些信息同步到其他设备。

  4. JSON - 我可以在CloudKit/externalServer创建一个存储为文件JSON文件

是否有其他方式来实现这样的事情?没有建立自己的后端?
你会以这些方式之一(目前我认为CloudKit会是最好的吗?),如果是这样的话,为什么会帮助我很多。

回答

1

嗨,从我的角度来看,它取决于同步的最终目的,如果你想同步简单的数据,这是非常简单和可靠的方式来使用CloudKit由于简单的API和良好的文档将展示如何在所有Apple设备上使用同步。

这个link包含很好的教程,展示了如何以正确的方式处理CloudKit

如果您想要一个非常复杂的解决方案,其中包含大量高度可定制的数据,则应使用自己的服务器来处理同步。

NSUserDefaults由于该类的目的,它不是设备之间同步数据的最佳方式。但是,如果你想使用小补丁,将保存对观看此视频。例如对于您:

NSUserDefaults.standardUserDefaults().setObject(Bool(false), forKey:"videoIsWached") 

var onoroff = NSUserDefaults.standardUserDefaults().objectForKey("videoIsWached") as Bool! 

JSON文件是很老派的方式,但它不是那么灵活,因为NSUserDefaults的CloudKit

还要考虑数据库架构的使用,例如CoreData境界这是存储,可以与其他设备通过REST服务同步本地修改好办法。

由于缺少后端以及与多个Apple设备同步的选项,您在使用CloudKit时非常合适。

相关问题