0

我需要保存一些应该在两个应用程序之间共享的设置。为了实现这一点,我激活App Groups了两个应用程序的功能并将应用程序组设置为TeamIdentifierPrefix.name.appname.

用户默认保存数据的相关代码:

let kListArray = "list"
let defaults = UserDefaults(suiteName: "TeamIdentifierPrefix.name.appname")
let data: [String:Any] = ["str1" : textInput.stringValue,
                          "str2" : button.state,
                          "str3" : ""]
let array = defaults?.array(forKey: kListArray)
var mutableArray = array
mutableArray?.append(data)
defaults?.set(mutableArray, forKey: kListArray)

虽然当我通过 Finder 查看 plist 时~/Library/Group Containers/TeamIdentifierPrefix.name.appname/Library/Preferences/TeamIdentifierPrefix.name.appname.plist,它仍然是空的。

在 Xcode 中,在控制台中收到以下警告:

2017-06-07 20:27:10.207748+0200 appname[3106:394220] [User Defaults] Failed to read 
values in CFPrefsPlistSource<0x6080000e2b00> (Domain: 
TeamIdentifierPrefix.name.appname, User: kCFPreferencesAnyUser, ByHost: Yes, 
Container: (null)): Using kCFPreferencesAnyUser with a container is only 
allowed for System Containers, detaching from cfprefsd
4

0 回答 0