我今天刚刚开始学习。我试图发布一个包含[String,String]数据和[String,NSMutableArray]数据的通知。我收到一条错误消息:
Cannot convert value of type 'NSMutableDictionary' to expected argument type [AnyHashable : Any]?
我试图找到一个解决方案或类似的代码,但还没有能够理解这个问题。有人能告诉我真正的问题是什么吗?我怀疑是否与混合我的字典值类型有关。如果是这样,如何在swift中完成?
var dict = NSMutableDictionary()
dict["status"] = "ok"
var list = NSMutableArray()
list.add("this")
list.add("is")
list.add("a test")
dict["list"] = list
NotificationCenter.default.post(name: Notification.Name("testing"), object: nil, userInfo: dict) <--- error
错误指向&#39; dict&#39;后通知行中的变量
谢谢
答案 0 :(得分:1)
您不能将NSMutableDictionary
用作userInfo
类型。您也不应该使用它(在Swift中使用NSMutableDictionary
或NSMutableArray
的原因很少。)请改为var dict: [String: Any] = [:]
(或let dict = […]
)。同样,list
应该键入[String]
而不是NSMutableArray
。
let dict = ["status": "ok",
"list": ["this", "is", "a test"]]
NotificationCenter.default.post(name: Notification.Name("testing"), object: nil, userInfo: dict)