6

我正在为 iOS 编写一个小部件,似乎在小部件中无法访问 UserDefaults,我添加了应用程序组,如下所示,仍然为零:

let prefs = UserDefaults(suiteName:"group.myco.myapp")

尽管如此,当我尝试读取prefs我在主应用程序中设置的内容时,这里还是没有。

4

2 回答 2

7

您需要将 AppGroup 功能添加到小部件目标。选择项目,然后选择小部件目标,转到 Signing & Capabilities 选项卡,然后单击+ Capability按钮。然后使用您的组选择AppGroup并配置它。

于 2020-08-04T10:59:54.513 回答
1

正如@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")
于 2020-11-20T10:41:49.443 回答