在主应用程序中,我创建组“ group.com.dronpop.Timetable”。为此,我执行了以下步骤:
我创建了一个单独的库,以便从主应用程序和Today扩展中的容器接收数据。 下面的代码我得到了容器。它已成功执行,没有崩溃和错误消息:
private let groupId = "group.com.dronpop.Timetable"
func sharedUserDefaults() -> UserDefaults {
return UserDefaults(suiteName: groupId)!
}
然后,在同一个库中,我尝试使用以下代码从容器中获取值:
private func restoreSet(key: String) -> Set<String> {
let userDefaults = sharedUserDefaults()
return Set(userDefaults.array(forKey: key) as? [String] ?? [])
}
在执行该行期间:userDefaults.array(forKey: key)
,我收到以下消息:
2018-11-15 11:08:24.954866 + 0300时间表[289:9226] [用户默认设置] 无法读取CFPrefsPlistSource <0x281acc380>中的值(域: group.com.dronpop.Timetable,用户:kCFPreferencesAnyUser,ByHost:是, 容器:(空),需要刷新的内容:是):使用 带有容器的kCFPreferencesAnyUser仅适用于系统 与cfprefsd分离的容器
但是代码可以正常工作,并返回在那里写入的元素(非空数组)。我仅在运行应用程序时收到此消息,该消息不在模拟器上
我做错了什么以及如何摆脱此消息?它工作正常,但恐怕在发布时会遭到拒绝。我试图重新安装该应用程序并重新启动iPhone,但这并没有帮助我。