ViewController.m
在[NSNotificationCenter defaultCenter]
注册为观察员并且正在运作。但是ViewController
在viewDidLoad
方法中执行了X.
如果ViewController
没有收到通知,我希望X只发生 。
架构可能听起来确实破了,但我的问题是defaultCenter
内是否有一些数据告诉我们观察员是否收到了通知?
答案 0 :(得分:0)
我们没有回叫方法可以知道观察者是否收到了被发送的notification
。
根据我们可以在Xcode中获得的Notification Center
方法:
/**************** Notification Center ****************/
open class NotificationCenter : NSObject {
open class var `default`: NotificationCenter { get }
open func addObserver(_ observer: Any, selector aSelector: Selector, name aName: NSNotification.Name?, object anObject: Any?)
open func post(_ notification: Notification)
open func post(name aName: NSNotification.Name, object anObject: Any?)
open func post(name aName: NSNotification.Name, object anObject: Any?, userInfo aUserInfo: [AnyHashable : Any]? = nil)
open func removeObserver(_ observer: Any)
open func removeObserver(_ observer: Any, name aName: NSNotification.Name?, object anObject: Any?)
@available(iOS 4.0, *)
open func addObserver(forName name: NSNotification.Name?, object obj: Any?, queue: OperationQueue?, using block: @escaping (Notification) -> Swift.Void) -> NSObjectProtocol
}
我们可以参考NotificationCenter
' s apple docs,我们应该了解它的功能是:
对象向通知中心注册,以使用addObserver(_:selector:name:object :)或addObserver(forName:object:queue:using :)方法接收通知(NSNotification对象)。
从文档中找不到你的要求。
答案 1 :(得分:0)
如果您正在寻找回电,请考虑结合使用,它更像是一种事务性通信协议。