0

我开始研究 iOS 8 扩展,我发现 App Groups 是提供在主机应用和扩展之间传递数据的机制。这种数据共享可以通过 NSUserDefaults、平面文件和核心数据来完成。当您设置应用程序组时,会在应用程序沙箱之外的设备/模拟器上创建一个新目录。可以从主机应用程序和扩展程序访问该目录,并且来自同一帐户/团队的其他应用程序似乎也可以访问此目录。

鉴于这一切,我想知道共享 App Group 目录及其内容的生命周期是什么。我一直找不到任何解释这一点的 Apple 文档。在模拟器上进行的一些经验测试表明,当安装了多个访问应用程序组的应用程序时,当最后一个具有该应用程序组权利的应用程序被删除时,该目录也会被删除。这是我期望看到的。我想确认一下情况就是这样。此外,系统是否有可能在低磁盘条件下清除此位置?

我正在尝试确定将我的应用程序的主要核心数据数据库存储在此应用程序组位置是否“安全”,或者我是否应该在那里制作数据副本。我不希望我的主数据库意外地被系统从我下面清除。

另外,App Group 目录的意图是什么?它们应该仅用于与扩展共享数据,还是用作来自同一开发者帐户/团队的应用程序之间的通用数据共享机制?

4

1 回答 1

1

我还在 Apple Dev 论坛上发布了这个,并从 Apple 开发者关系中的某个人那里得到了答复。他们是这样说的:

系统是否有可能在低磁盘条件下清除此位置?

那不会发生。

我正在尝试确定将我的应用程序的主要核心数据数据库存储在此应用程序组位置是否“安全”,或者我是否应该在那里制作数据副本。

将核心数据存储放在 App Group 目录中是完全合理的。

另外,App Group 目录的意图是什么?

它们在那里,以便应用程序套件可以共享数据。我认为最清楚的表达来自 Mac 文档。“应用沙盒设计指南”说:

[...] 应用程序可以使用 com.apple.security.application-groups 权利来请求访问共享容器,该容器对于由同一开发团队生产的多个应用程序是通用的。此容器适用于不面向用户的内容,例如共享缓存或数据库。

文档

于 2014-10-07T23:36:13.197 回答