在iOS上的主机应用程序和小部件之间同步远程数据

时间:2018-11-08 12:30:35

标签: ios core-data today-extension

在我的应用程序中,我有从互联网上获取并显示在我的应用程序中的数据。我将此数据存储在CoreData数据库中。 该数据大约每30分钟更新一次。

现在,我想为我的应用添加一个小部件,并正在考虑如何最好地在小部件和主应用之间同步数据。

解决方案1 ​​ 。:将CoreData数据库移至共享的应用程序空间并从中读取数据。不与小部件同步,并希望主应用程序的后台获取已激活并且经常发生。但是我想这是最糟糕的解决方案,因为大多数时候数据都不会是最新的...

解决方案2 。:将CoreData数据库移至共享的应用程序空间并从中读取数据。但是由于数据仅在打开主应用程序时更新,所以我还需要在小部件内获取数据并将其存储到数据库中。 这带来了几个问题。首先是潜在的同时写入同一数据库。第二个是主应用程序的NSManagedObjectContext不反映任何更改,这使我的小部件f.e. 所以...不理想吗?!?

解决方案3 。:让小部件拥有它自己的数据副本。但是,由于我想拥有大约2-3个小部件,因此用户可能会仅仅为了获得数据的多个副本而进行无意义的同步。但是至少我猜想这种解决方案将是潜在冲突最少的解决方案?

我想知道你们的建议。我已经在互联网上阅读了有关它的内容,但是还没有找到一个很酷的解决方案。因此,我正在寻找您的建议。

1 个答案:

答案 0 :(得分:0)

解决方案: 主机应用程序<=>消息代理(MQTT)<=> IOS应用程序。

此解决方案将创建实时数据。