[英]Persisting standard NSUserDefaults with App Groups enabled
我正在macOS 10.13上開發一個沙盒應用程序。 它是一個類似鞋盒的應用程序,由帶工具欄的主窗口組成。 在Interface Builder中設置窗口框架和工具欄配置的自動保存。
如果我運行並退出應用程序,我可以在應用程序的沙箱容器中看到包含預期數據的首選項文件(名為<app-identifier>.plist
)。 一切正常。
為了與其他沙盒應用程序進行數據交換,我在目標的Xcode Capabilities
選項卡中創建了一個應用程序組。
到目前為止,這是有效的,即在啟動應用程序時會創建一個額外的組容器。 通過UserDefaults.init(suiteName:"<group-name>")
創建UserDefaults
對象,還可以將共享首選項存儲到組容器中。
添加應用程序組后,例如工具欄配置的自動保存機制不再有效。 在干凈的Mac上啟動和退出應用程序不再在應用程序容器的Preferences
目錄中創建.plist
文件。 而是控制台顯示如下消息:
[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)
它找我,自動保存機制不再能夠將其數據寫入首選項文件。
是否可以在應用程序組中同時使用標准UserDefaults和共享的UserDefaults?
問題解決了:重新啟動Mac后,一切都按預期工作。 這真的很奇怪。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.