OC网络学习13:数据共享App Groups探索
前言
App Groups
即数据共享空间
,这是iOS8
新开放的功能,在OS X
上早已存在。App Groups
主要用于同一App Groups
下的不同App
共享同一份读写空间
,以实现数据共享App Groups
也可以用于Containing App
和Extension
共同读写一份数据,比如:系统的股市应用等
注:只能使用于同一个开发者账号,如果不同开发者账号请考虑剪切板
UIPasteboard
创建 App Groups
- 登录开发者账号创建
App Groups
打开如下链接:https://developer.apple.com/account/ios/certificate/development 登录开发者账号,开启
App Groups
添加描述:
- 填写 Identifier
- 最后 确认
- Xcode 中配置
请确保你的开发者账号在Xcode上处于登录状态,以便下面的操作,Xcode
中配置 App Group
(注意:要用到数据共享的工程都要配置 Extension
和 Containing App
都需要配置)
- 在
Extension
中开启
TARGET -> App Extension Demo -> Capabilities -> App Groups -> 双击添加,添加之后,会根据配置的自动证书去生成 groups
,命名规则:group.Bundle Identifier
- 在 Containing App 中开启
同理:TARGET -> Host App -> App Groups
- 创建
App Groups
成功后,会生成Extitlements File
文件,Containing App
和Extension
相同
Containing App 与 Extension 数据共享
配置工作完成,接下来,就是实现数据共享代码
- 通过
NSUserDefaults
共享数据
1 | // NSUserDefaults |
- 存数据
1 | // 保存数据到共享空间 |
- 取数据
1 | // 从共享空间取值 |
注:
1、保存数据的时候必须指明 group identifier
2、而且要注意 NSUserDefaults 能够处理的数据只能是可 plist 化的对象,详情见 Property List Programming Guide 。
3、为了防止出现数据同步问题,不要忘记调用 synchronize;
- 通过
NSFileManager
共享数据
1 | // 通过 containerURLForSecurityApplicationGroupIdentifier 方法和 共享域标识符 我们可以获取到该共享域的路径 |
利用 NSFileManager
我们可以存取各种文件,数据库文件(.db),json文件,framework等等;
我们可以复制各种文件到 App Groups
的存取区域,在 另一个App/Extension
中拿出来
- 写入文件
1 | #pragma mark - 写入 jsonStr dic data array |
- 读取文件
1 | #pragma mark - 读取 jsonStr dic data array |
- Post title:OC网络学习13:数据共享App Groups探索
- Post author:张建
- Create time:2023-06-27 13:51:15
- Post link:https://redefine.ohevan.com/2023/06/27/OC网络/OC网络学习13:数据共享App Groups探索/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.