iOS 8昨天发布了一个关于App Groups的新API.在分享数据和在应用程序之间进行通信之前,它有点混乱,我相信这正是App Groups要纠正的内容.
在我的应用程序中,我启用了应用程序组并添加了一个新组,但我找不到任何有关如何使用它的文档.文档和API参考仅说明如何添加组.
那么App Group真正打算做什么呢?有没有关于如何使用它的文件?
我在开发人员门户中将应用程序组添加到了我的应用程序ID,并在我的配置文件中使用了该应用程序ID.Xcode中的我的产品标识符设置为该应用程序ID.
在我的app委托中,我从didFinishLaunchingWithOptions调用它
NSUserDefaults.standardUserDefaults().setObject("hey", forKey: "TEST")
NSUserDefaults.standardUserDefaults().synchronize()
Run Code Online (Sandbox Code Playgroud)
在我的键盘应用程序扩展中,我称之为:
if let test = NSUserDefaults.standardUserDefaults().objectForKey("TEST") as? String
{
println(test)
}
Run Code Online (Sandbox Code Playgroud)
这从来都不是真的.如果我删除验证测试并打印结果,则自定义键盘会崩溃.
编辑也尝试了相同的崩溃结果:
App代表
var userDefaults = NSUserDefaults(suiteName: "group.jackedgames.myappgroup")
userDefaults.setObject("TEST", forKey: "TEST")
userDefaults.synchronize()
Run Code Online (Sandbox Code Playgroud)
键盘扩展
var userDefaults = NSUserDefaults(suiteName: "group.jackedgames.myappgroup")
var test = userDefaults.objectForKey("TEST") as String
NSLog(test)
Run Code Online (Sandbox Code Playgroud)
在两个目标的"功能"部分中,我启用了已选择此组ID的组.
我在这里错过了什么?