我正在处理iOS
应用程序的更新,用户可以看到不同的视频,所以我也希望尽快添加tvOS
版本。
我想添加一种方法来同步" 观看" VideoObject
的状态。
我的VideoObject
确实有一个VideoObject.id
,我会添加一个VideoObject.watched_status
作为Bool
现在我有不同的想法如何保存这些信息,也可能在tvOS上使用它们。
Firebase - 这需要用户创建一个login / me来生成userkey
,他可以与其他设备同步(输入{{1}在其他设备上),否则信息只能在一台设备上使用。
NSUserDefaults - 也许是最简单的方法,但不是很灵活。也没有简单的同步可用
CloudKit - CloudKit可用于存储这些信息(privat)并自动将这些信息同步到其他设备。
JSON - 我可以创建一个在CloudKit / externalServer中存储为文件的JSON文件
还有其他方法可以实现这样的目标吗?没有建立自己的后端?
你会优先考虑其中一种方式(目前我认为CloudKit会是最好的吗?),如果这样,那么简短的原因会对我有所帮助。
答案 0 :(得分: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 或 Realm ,这是存储可以通过REST服务与其他设备同步的本地更改的好方法。
由于缺少后端和与多台Apple设备同步的选项,因此使用 CloudKit 非常合适。