多个应用程序通过应用程序组对CoreData的不同权限

时间:2018-12-11 09:39:15

标签: ios swift core-data ios-app-group

我目前正在构建两个应用程序,它们在同一个应用程序组的帮助下共享同一CoreData容器中的数据实体(这是有效的)。

我当前的目标是对此数据获得不同的权限。为了更清楚一点,将这两个应用程序称为Admin-App和User-App,它们都访问相同的数据,但是User-App应该只能访问简化的实体属性选择。

解决这个问题的合理方法是什么?我已经了解了一下,得到了以下方法:

  1. 两个容器并多次保存数据
  2. 只需处理User-App的开放访问权限,因为使用过的App Group的开发人员应该知道如何处理其数据。

谢谢!

1 个答案:

答案 0 :(得分:0)

iOS上没有任何东西可以为您实施这种限制。如果应用程序组文件夹可被某个应用程序访问,则该应用程序可以读取和写入该文件夹中的任何内容。

简单的答案是,如果您要同时编写两个应用程序,请编写它们以遵循您的策略,即哪个应用程序可以读取或写入数据。

一个更复杂的答案(如果由于某种原因而不能接受)是让管理应用程序将一些数据保存在其自己的容器中,并将某些数据保存在应用程序组中。即使您还有一个组,您仍然可以使用应用程序的私有容器。这意味着管理应用程序必须知道将哪些数据放入哪个容器中,这可能会或可能不会很复杂,具体取决于您拥有的数据类型以及应用程序如何使用它。不过,管理应用程序没有理由没有自己的私有数据。

Core Data支持该方法。您可以同时加载多个永久存储文件,Core Data会将它们显示为一个统一的数据存储。对于读取数据,这很容易处理。对于写入数据,它变得有点复杂,因为每次添加数据时,您都需要告诉Core Data使用哪个文件。这并不是很困难,但是要了解您的工作,将需要更多的工作和更多的研究。