我有App + Extension,我做了这样的共享存储
let personNames = UserDefaults.extensions.personNames
但是当我调试应用程序时,我看到内存地址 A 和正确的值(因为我通过Main应用程序放置了值,但是当我调试扩展程序时,我的内存地址为 B ,没有值。
我在Main和Extension应用程序上都使用了相同的AppGroup,并且访问了这样的数据
IOptions<JwtSettings>
我使用免费的Apple ID帐户是否有问题?我可以使用此帐户创建组,所以我对此表示怀疑。
答案 0 :(得分:0)
编辑:
是的,您可能需要一个付费的Apple开发人员帐户,因为您必须启用与您的应用程序ID相关联的应用程序组功能。
原始答案:
您可能需要调用synchronize()
才能将数据立即写入磁盘。
var personNames: [String] {
get {
guard let array = UserDefaults.extensions.array(forKey: Keys.personNames) as? [String] else {
return []
}
return array
}
set {
UserDefaults.extensions.setValue(newValue, forKeyPath: Keys.personNames)
UserDefaults.extensions.synchronize()
}
}}
答案 1 :(得分:0)
好的,我找到了解决方案。我以goup.com.company.appName.sharedStorage格式创建了一个新组,并且将它用作suitName,并且一切正常。
所以也许是因为有免费的Apple帐户,但创建应用组时出现了问题(因为它是自动的),或者是因为group.appName格式无效。