无法将类型 'NSNotification.Name' 的值转换为预期的参数类型 'NSKeyValueObservingOptions'

Cannot convert value of type 'NSNotification.Name' to expected argument type 'NSKeyValueObservingOptions'

在 NMAPositioningManager.h 中有这个常量:

FOUNDATION_EXPORT NSString *const NMAPositioningManagerDidUpdatePositionNotification;

我的代码在 swift

NotificationCenter.addObserver(self, forKeyPath: "positionDidUpdate", options: NSNotification.Name.NMAPositioningManagerDidUpdatePosition, context: NMAPositioningManager.shared())

灵感来自 Obj-C 中的示例:

[[NSNotificationCenter defaultCenter] addObserver:self
 selector:@selector(positionDidUpdate)
 name:NMAPositioningManagerDidUpdatePositionNotification
 object:[NMAPositioningManager sharedNMAPositioningManager]];

我的字段选项有误:

NavigationViewController.swift:30:84: Cannot convert value of type 'NSNotification.Name' to expected argument type 'NSKeyValueObservingOptions'

我必须输入什么才能让我的 Swift 代码正常工作?

编辑:使用 NotificationCenter 而不是 Notification

您应该在 default 单例上调用 addObserver.. 方法 应该是:

NotificationCenter.default.addObserver(self, selector: #selector(positionDidUpdate), name: NSNotification.Name.NMAPositioningManagerDidUpdatePosition, object: NMAPositioningManager.shared())

更新为 SWIFT 5.4

NotificationCenter.default.addObserver(self,
                                       selector: #selector(doThisWhenNotify),
                                       name: NSNotification.Name("notificationKey"),
                                       object: nil)