NSUserDefault无法在iOS8中的Extension中保存和加载

Fir*_*ist 5 nsuserdefaults ios ios8 ios-app-extension ios-app-group

我需要将数据保存到NSUserDefault我的iOS自定义键盘中.我已经在开发人员门户网站中成功创建了应用程序组和权利XCode.

以下是我如何使用UISwitch保存我的价值

- (IBAction)switchAction:(id)sender
{
    [self.defaults setBool:self.myKey.on forKey:@"myValue"];

    [self.defaults synchronize];
}
Run Code Online (Sandbox Code Playgroud)

这是我如何在KeyboardView中加载值.

self.defaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.mycompany.customkeyboard"];

if([self.defaults boolForKey:@"myValue"])
{
    self.backgroundColor = [UIColor redColor];
}

else
{
    self.backgroundColor = [UIColor blackColor];
}
Run Code Online (Sandbox Code Playgroud)

它不起作用,也没有加载价值.

我如何保存和加载数据?

San*_*aus 4

在应用程序组中的所有应用程序中像这样初始化您的NSUserDefaults对象,它们将共享数据库:

[[NSUserDefaults alloc] initWithSuiteName:@"group identifier"];
Run Code Online (Sandbox Code Playgroud)

请记住,[NSUserDefaults standardUserDefaults]每个应用程序的数据库中的所有内容都不会转移到该数据库中。

文档表明 应该[NSUserDefaults standardUserDefaults]像上面的代码一样返回共享数据库,但事实并非如此。我将此作为错误提交(rdar://17164758)。

并且不要忘记同步数据库:

[yourDefaults synchronize];
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

4432 次

最近记录:

10 年,1 月 前