与App Group的NSUserDefault无法在iOS 8 Beta3中运行

时间:2014-07-19 13:35:45

标签: ios nsuserdefaults ios8 ios-app-extension ios-app-group

我必须使用Boolean在我的应用中将NSUserDefault值保存到custom keyboard extension并与App Group共享。

我的代码在iOS 8 Beta1。

中使用
self.defaults = [NSUserDefaults standardUserDefaults];

if([self.defaults boolForKey:@"BlackKey"])
    {
        NSLog(@"Black");
    }

    else
    {
        NSLog(@"White");
    }

但不是iOS 8 Beta3。当我从Boolean检索NSUserDefault值时,它不返回任何内容,我无法从自定义键盘扩展程序加载。

我还尝试initWithSuiteName中的NSUserDefault。我只是那个问题或iOS 8 Beta3的错误吗?

2 个答案:

答案 0 :(得分:2)

一些可能的解决方案是:

  1. 您的应用程序组设置不正确,或者您没有使用initWithSuiteName:

  2. 的正确组标识符
  3. 您尚未为键盘启用网络访问权限。当您为键盘禁用网络访问时,This document会声明以下内容(默认行为):

      

    没有包含应用

    的共享容器
  4. 这是一个错误。

答案 1 :(得分:-5)

尝试使用

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"BlackKey"];

使用此代码保存并阅读时:

if([[NSUserDefaults standardUserDefaults] boolForKey:@"BlackKey"]) {
    NSLog(@"Black");
}

else
{
    NSLog(@"White");
}

或者如果你已经这样做了,那么它可能是bug,Xcode 6 beta版本也有其他错误,因此在Xcode 5或更早版本中尝试更安全。