简体   繁体   English

在 iOS 14 中的主应用程序和小部件之间共享 UserDefaults

[英]Sharing UserDefaults between main app and Widget in iOS 14

I am writing a widget for iOS, seems UserDefaults is not accessible in the widget, I added app group as following, still it's nil:我正在为 iOS 编写一个小部件,似乎在小部件中无法访问 UserDefaults,我添加了如下应用程序组,但它仍然为零:

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

Still when I try to read something from prefs which I set in the main app, it's nil here.仍然当我尝试从我在主应用程序中设置的prefs中读取一些内容时,这里是零。

You'll need to add the AppGroup capability to the widget target.您需要将 AppGroup 功能添加到小部件目标。 Select the project, then select the widget target, go to the Signing & Capabilities tab, and click the + Capability button. Select 项目,然后 select 小部件目标,go 到 Signing & Capabilities 选项卡,然后单击+ Capability按钮。 Then choose AppGroup and configure it with your group.然后选择AppGroup并使用您的组进行配置。

As @Ilya Muradymov commented blow正如@Ilya Muradymov 评论打击

You need to set data for corresponding group UserDefault first if you want to get the data between widget and container app:如果要获取widget和容器app之间的数据,需要先设置对应组UserDefault的数据:

 //object-C     
 [[NSUserDefaults.alloc initWithSuiteName:@"group.com.your.groupname"] setObject:mObject forKey:@"xxxxxxxx"];
 //swift
 UserDefaults(suiteName:"group.com.your.groupname").set(mObject, forKey: "xxxxxxxx")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 是否仍可以在iOS和tvOS之间共享UserDefaults? - Is sharing UserDefaults between iOS and tvOS still possible? ios 14 小部件:如何在 UserDefaults 更改后重新加载时间线 - ios 14 widget: How to reload timeline after UserDefaults changed 除了“ UserDefaults”之外,还有什么其他方法可以在iOS中的“今日小工具扩展”和主“容器应用程序”之间共享数据 - Is there any other way than `UserDefaults` to share data between `Today Widget Extension` and the main `Container Application` in iOS 在Swift中的主应用程序和Today小部件/扩展之间共享UI元素 - Sharing UI elements between main App and Today widget/extension in Swift WatchOS 2-iOS UserDefaults共享 - WatchOS 2 - iOS UserDefaults sharing 在 iOS 13/14 上删除应用程序时是否会擦除 UserDefaults? - Are UserDefaults wiped when deleting an app on iOS 13/14? iOS 8小部件,向前和向后在应用程序组之间共享数据 - iOS 8 widget, sharing data between app groups forward and backward iOS 14 小部件没有要启动的 main() - iOS 14 widget has no main() to be launched 主应用程序和共享扩展名之间的iOS共享.h文件 - iOS Sharing .h file between main app and share extension 在ios主应用程序和扩展之间共享动态框架 - Sharing dynamic frameworks between ios main app and extension
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM