我正在为 iOS 编写一个小部件,似乎在小部件中无法访问 UserDefaults,我添加了应用程序组,如下所示,仍然为零:
let prefs = UserDefaults(suiteName:"group.myco.myapp")
尽管如此,当我尝试读取prefs
我在主应用程序中设置的内容时,这里还是没有。
我正在为 iOS 编写一个小部件,似乎在小部件中无法访问 UserDefaults,我添加了应用程序组,如下所示,仍然为零:
let prefs = UserDefaults(suiteName:"group.myco.myapp")
尽管如此,当我尝试读取prefs
我在主应用程序中设置的内容时,这里还是没有。
您需要将 AppGroup 功能添加到小部件目标。选择项目,然后选择小部件目标,转到 Signing & Capabilities 选项卡,然后单击+ Capability
按钮。然后使用您的组选择AppGroup
并配置它。
正如@Ilya Muradymov 评论打击
UserDefault
如果要获取widget和容器app之间的数据,需要先设置相应组的数据:
//object-C
[[NSUserDefaults.alloc initWithSuiteName:@"group.com.your.groupname"] setObject:mObject forKey:@"xxxxxxxx"];
//swift
UserDefaults(suiteName:"group.com.your.groupname").set(mObject, forKey: "xxxxxxxx")