app group用于app间数据共享,也用于扩展与宿主app间的数据共享

1. 添加App Group的方法

在这里插入图片描述
正如你所看到的,选中项目跟着步骤走,就可以显示出app group ,接着直接将其拖拽到对应TARGET中,如果你的ID没有创建过App Group 那么这个时候里面的内容是空的,这个时候你可以直接点击“+”按钮在弹出的菜单中输入你要创建的App Group的名字(即entitlements),确定后就可以在刚才拖拽出来的App Group的里面显示出当前你已经添加的组的标识符,即名称。如果你确定将其使用在当前项目中,那么将其选中即可。同理,在你其他的app的项目或者是你的扩展中也如此添加App Group并使用相同的名称,于是他们就可以共享数据了。
在这里插入图片描述
当你在洁面中点击了其他地方,看不见添加App Group的窗口时候,莫慌!像上图那样直接点击右上角的“+”按钮就可以再次显示出来。

2.在代码中使用数据共享

在这里插入图片描述
这里通过文件管理器的默认对象在App Group中共享目录中创建了文件,在这里可以存取各种文件,数据库文件,json, xml,framework等。可以复制各种文件到App Group的共享目录,然后在扩展或者我们自己的其他app中拿取出来,实现我们多app数据共享。
在这里插入图片描述
这里呢使用的是userDefault以SuitName为标识符的实例化对象进行数据的存取

使用说明

App Group容器只是在宿主app运行期间才存在,其中的容器用于扩展与宿主的文件共享,宿主被关闭了,共享也就没意义了。
以上来自于实际测试,测试过程是:在宿主app运行期间,点击其中的按钮弹出模态视图控制器,进行数据填充。完成后保存数据到App Group容器中的文件中,以供today extension扩展进行数据使用。只要将宿主app杀掉后重启启动宿主app,today extension 中已经显示的数据就完全没有了。单纯将宿主app杀掉不重启,today extension的任然hi显示之前的内容。由于宿主app中显示的数据也是从app group中的文件中取出来的,所以数据也没了。

由于这个共享机制的特殊性,这个容器不能用来长期保存文件!!!
应该将文件存储到宿主app的文件夹中,可以长期存储。today extension展示的数据量较少,在合适的时候将其需要的数据搬运到app group中!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐