使用iOS 8应用程序组在两个应用程序之间共享数据(使用NSUserDefaults)

Fab*_*enP 13 objective-c ios swift ios8 ios-app-group

我想知道我们是否可以在具有新iOS 8功能的应用程序之间共享数据:应用程序组(使用NSUserDefaults) - 或者如果应用程序组仅在主应用程序及其扩展程序之间共享数据?

我实际上在两个应该共享数据的应用程序上启用了应用程序组功能(它们属于同一家公司).它们也具有相同的App Groups(例如group.com.company.myApp).

这是第一个代码(在Swift中)

    NSUserDefaults.standardUserDefaults().setBool(true, forKey:"Bool")
    NSUserDefaults.standardUserDefaults().synchronize()
Run Code Online (Sandbox Code Playgroud)

这是第二个代码(在Objective-C中)

    NSUserDefaults *datas = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.company.myApp"];
    NSLog(@"%@", [datas boolForKey:@"Bool"]);
Run Code Online (Sandbox Code Playgroud)

可悲的是,布尔总是回归零.

如果有人有解决方案:)

谢谢

bjt*_*tus 10

在Apple开发者论坛上查看此主题:https: //devforums.apple.com/message/977151#977151

我相信两个实例都需要使用组ID(使用initWithSuiteName :)初始化,否则它们正在读/写不同的用户默认值集.

所以你的Swift代码将改为:

var userDefaults = NSUserDefaults(suiteName: "group.com.company.myApp")
userDefaults.setBool(true, forKey: "Bool")
userDefaults.synchronize()
Run Code Online (Sandbox Code Playgroud)

  • 这不适合我,任何解决方法!请帮忙. (2认同)