在应用和扩展间共享数据 - App Groups

对 iOS 开发者来说,沙盒限制了我们在设备上随意读取和写入。但是对于应用和其对应的扩展来说,Apple 在 iOS 8 中为我们提供了一种可能性,那就是 App Groups。App Groups 为同一个 vendor 的应用或者扩展定义了一组域,在这个域中同一个 group 可以共享一些资源。对于我们的例子来说,我们只需要使用同一个 group 下的 NSUserDefaults 就能在主体应用不活跃时向其中存储数据,然后在扩展初始化时从同一处进行读取就行了。

同一个公司(即同一个vendor)的app,装了一个之后,在装另一个,就会自动登录的功能。initWithSuiteName会在Library/Preference下新建一个以name为名字的plist文件。[NSUserDefaults standardUserDefaults]是以bundle id为名字的一个plist文件。利用这个我们可以给每一个用户新建一个偏好设置的文件,保存皮肤,字体等,不同的用户登录就会有不同的效果。


用法

// appA中

NSUserDefaults *shareDefaultA = [[NSUserDefaults alloc]initWithSuiteName:@"com.storage.demo"];

[shareDefaultA setObject:@"appA" forKey:@"shareKey"];

// appB中

NSUserDefaults *shareDefaultB = [[NSUserDefaults alloc]initWithSuiteName:@"com.storage.demo"];

NSString *value = [shareDefaultB objectForKey:@"shareKey"];


https://onevcat.com/2014/08/notification-today-widget/

你可能感兴趣的:(在应用和扩展间共享数据 - App Groups)