我需要使用userinfo
数据中包含的NotificationCenter POST请求传递OSNotificationPayload类型的有效负载,但我不断收到以下错误Cannot convert value of type 'OSNotificationPayload' to expected argument type '[AnyHashable : Any]?'
我是个快速的菜鸟,有可能强迫这样做吗?受影响的代码如下
let notificationOpenedBlock: OSHandleNotificationActionBlock = { result in
let payload: OSNotificationPayload = result!.notification.payload
NotificationCenter.default.post(name: Notification.Name("Notification"), object: nil, userInfo: payload )
}
我在另一个课程中有一个观察者设置
public override func load() {
let nc = NotificationCenter.default
nc.addObserver(self, selector: #selector(self.handleSignal(_:)), name: Notification.Name("Notification"), object: nil)
}
@objc func handleSignal(_ notification: NSNotification)
{
let image = notification.userInfo?["notify"] as? OSNotificationPayload
notifyListeners(
"myPluginEvent",
data: ["payload":image as Any],
retainUntilConsumed: true
)
}
通知的userInfo应该是字典,因此您的代码可以如下所示>>
let notificationOpenedBlock: OSHandleNotificationActionBlock = { result in
let payload: OSNotificationPayload = result!.notification.payload
NotificationCenter.default.post(name: Notification.Name("Notification"),
object: nil, userInfo: ["payload": payload] )
}