1>NSNotification 必须要先注册观察者,然后发送通知,观察者才能收到通知
如果顺序相反,则不会收到通知,比如viewController1 跳转到viewController2,同时发送通知,然后在viewController2中注册观察者接收通知,这样是接收不到的;
2>关于循环引用
- (id <NSObject>)addObserverForName:(nullable NSNotificationName)name object:(nullable id)obj queue:(nullable NSOperationQueue *)queue usingBlock:(void (^)(NSNotification *note))block API_AVAILABLE(macos(10.6), ios(4.0), watchos(2.0), tvos(9.0));
在这个方法中的block代码块中如果你使用了self.会造成循环引用,原因不知,猜测应该是观察者默认为self,且持有了该block;
网友评论