2014-09-24 108 views
0

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

鉴于这一切,我想知道什么是共享应用程序组目录的生命周期及其内容。我一直无法找到任何解释这一点的Apple文档。模拟器上的一些经验性测试显示,如果安装了多个访问应用程序组的应用程序,则在删除具有该应用程序组授权的最后一个应用程序时,该目录将被删除。这是我期望看到的。我想确认情况是这样的。另外,系统在低光盘条件下是否有可能清除此位置?

我试图确定它是否是“安全的”我的存储应用的主要核心数据的数据库在此应用程序组的位置,或者如果我要制作数据副本,而不是存在。我不希望我的主数据库被系统意外地从我的下面消除。

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

回答

1

我也在苹果开发者论坛上发布了这个帖子,并得到了苹果开发者关系专家的回复。以下是他们所说的内容:

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

不会发生的。

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

将您的核心数据存储放在App Group目录中是非常合理的。

此外,什么是应用程序组目录的意图是什么?

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

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

Documentation