我不知道什么是错的:
extension UserDefaults {
static let shared = UserDefaults(suiteName: SharedGroupName)!
static func set(object: Any, forKey key: String) {
shared.set(object, forKey: key)
shared.synchronize()
}
}
IDE中的错误图像:
5条答案
按热度按时间aamkag611#
你应该试着省略静态变量,只用途:
可能会有不同。此外,正如其中一条评论所述,不需要“同步”。
5w9g7ksd2#
我重新创建了相同的源代码,它没有崩溃,我相信崩溃是由你给的示例文件之外的东西造成的。您能否添加更多可能向扩展传递数据的代码?
kdfy810k3#
只需将shared声明为可选即可。
c3frrgcw4#
1.打开SharedGroupName!作为字符串
1.使用可选的"?“与共享将运行您的代码罚款
zphenhs45#
如果答案是肯定的,并且原因是您正在使用小部件扩展,请确保主应用目标和小部件扩展目标都启用了应用组功能,并使用相同的已激活(必须设置复选标记)应用组名称。
如果答案是否定的,那么用suiteName替换init并使用默认的初始化器。
static let shared = UserDefaults(suiteName: SharedGroupName! as String)
能否尝试直接传递SharedGroupName的字符串值?