Communicating and persisting data between apps with App Groups
ios, ios-app-extension, ios8, objective-c
Solution
Another benefit to App Groups is the ability to share a `NSUserDefaults` database. This also works for App Extensions (notification center widgets, custom keyboards, etc).
Initialize your `NSUserDefaults` object like this in all applications in the app group and they will share the database:
Objective-C:
[[NSUserDefaults alloc] initWithSuiteName:@"<group identifier>"];
Swift:
NSUserDefaults(suiteName: "<group identifier>")
Keep in mind everything from the `[NSUserDefaults standardUserDefaults]` database for each application will not carry over into this database.
The documentation gives a correct example as well (As of Beta 3).
And don't forget to synchronize the database:
[yourDefaults synchronize];
Problem
iOS 8 revealed a new API yesterday concerning App Groups. It was kind of messy before to share data and communicate between apps and I believe that's precisely what App Groups is intended to correct. In my app I have enabled App Groups and added a new group but I just can't find any documentation on how to use it. Documentation and API references only state how to add a group. So what is App Groups really intended to do? Is there any documentation somewhere on how to use it?