3

我必须将Boolean价值保存到NSUserDefault我的应用程序中custom keyboard extension并与应用程序组共享。

我的代码在iOS 8Beta1 中工作。

self.defaults = [NSUserDefaults standardUserDefaults];

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

    else
    {
        NSLog(@"White");
    }

但不在 iOS 8 Beta3 中。当我从中检索Boolean值时NSUserDefault,它什么也不返回,我无法从自定义键盘扩展加载。

我也试过initWithSuiteNamein NSUserDefault。我只有一个解决这个问题或 iOS 8 Beta3 的错误吗?

4

2 回答 2

2

一些可能的解决方案是:

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

  2. 您尚未为键盘启用网络访问。当您为键盘禁用网络访问时,本文档说明了以下内容(默认行为):

    没有包含应用程序的共享容器

  3. 这是一个错误。

于 2014-07-19T21:58:10.713 回答
-5

尝试使用

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

当您使用此代码保存和阅读它时:

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

else
{
    NSLog(@"White");
}

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

于 2014-07-19T13:44:34.967 回答