一、 App Groups
这是iOS8新开放的功能,在OS X上早就可用了。它主要用于同一group下的app共享同一份读写空间,以实现数据共享。
extension和containing app共同读写一份数据是很合理的需求,比如系统的股市应用,widget和app中都需要展示几个公司的股票数据,这就可以通过App Groups实现。
1.1 功能开启
为了便于后续操作,请先确保你的开发者账号在Xcode上处于登录状态。
在app中开启
App Groups位于:
- TARGETS-->AppExtensionDemo-->Capabilities-->App Groups
找到以后,将App Groups右上角的开关打开,然后选择添加groups,比如我的是group.wangzz,当然这是为了测试随便起得名字,正规点得命名规则应该是:group.com.company.app。
添加成功以后如下图所示:
1.2 在extension中开启
我创建的是widget,target名称为TodayExtension,对应的App Groups位于:
- TARGETS-->TodayExtension-->Capabilities-->App Groups
开启方式和app中一样,需要注意的是必须保证这里地App Groups名称和app中的相同,即为group.wangzz。
二、extension和containing app数据共享
App Groups给我们提供了同一group内app可以共同读写的区域,可以通过以下方式实现数据共享:
2.1 通过NSUserDefaults共享数据
存数据
通过以下方式向NSUserDefaults中保存数据:
- - (void)saveTextByNSUserDefaults
- {
- NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.wangzz"];
- [shared setObject:_textField.text forKey:@"wangzz"];