gpt4 book ai didi

cocoa - 在启用应用程序组的情况下保留标准 NSUserDefaults

转载 作者:行者123 更新时间:2023-12-03 16:17:47 25 4
gpt4 key购买 nike

原始情况:

我正在 macOS 10.13 上开发沙盒应用程序。它是一个类似鞋盒的应用程序,由带有工具栏的主窗口组成。窗口框架和工具栏配置的自动保存在 Interface Builder 中设置。

如果我运行并退出应用程序,我可以看到一个首选项文件(名为 <app-identifier>.plist ),其中包含应用程序沙箱容器中的预期数据。一切正常。

使用应用程序组扩展应用程序:

为了允许与其他沙盒应用程序交换数据,我在目标的 Capabilities 中创建了一个应用程序组Xcode 选项卡。

到目前为止,这是有效的,即启动应用程序时会创建一个额外的组容器。还可以通过创建 UserDefaults 将共享首选项存储到组容器中。对象通过 UserDefaults.init(suiteName:"<group-name>") .

问题:

添加应用程序组后,自动保存机制例如工具栏配置不再起作用。在干净的 Mac 上启动和退出应用程序不再创建 .plist文件在 Preferences应用程序容器的目录。相反,控制台显示如下消息:

[User Defaults] attempt to set <value> for key in <key> in
non-persistent preferences domain CFPrefsPlistSource<address>
(Domain: <app-identifier>, User: kCFPreferencesCurrentUser,
ByHost: No, Container: (null), Contents Need Refresh: Yes)

在我看来,自动保存机制无法再将其数据写入首选项文件中。

是否可以在应用组中同时使用标准 UserDefault 和共享 UserDefault?

最佳答案

问题已解决:重新启动 Mac 后,一切正常。这实在是太奇怪了。

关于cocoa - 在启用应用程序组的情况下保留标准 NSUserDefaults,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47189120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com