我真的不知道如何处理这个问题。 我正在创建一个键盘扩展,我需要在我的应用程序和我的插件之间共享一些数据。我试图使用NSUserDefaults。
我的应用程序中有以下代码段
userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.com.____"];
[userDefaults setObject:@"w/e" forKey:@"mykey"]; //in my app
[userDefaults stringForKey:@"mykey"]; //in my extension
我已在itunes connect中创建了组ID,更新了应用和扩展程序的应用程序ID,我重新创建了配置文件,并添加了以下权利
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.application-groups</key>
<array>
<string>group.com.___</string>
</array>
</dict>
</plist>
一切都很棒......在模拟器上。当我从设备访问运行插件的myKey
时,我得到一个零对象。
不是这样,它自己的对象userDefaults
不是零。
任何帮助?
修改 如果我要求并且完全访问该插件,问题似乎不会出现。但为什么我需要完全访问才能使用此功能?为什么我需要在设备上而不是在模拟器上?