通常情况下,我在对象参数中使用nil
,而在任何类中添加观察者。现在,我的问题是在添加观察者时使用object
参数的内容,对于发布,我可以理解,它对于将任何对象作为通知对象传递非常有用。
[[NSNotificationCenter defaultCenter] addObserver:self selector: @selector(testMethod:) name:@"userDetailUpdatedNotification" object: nil];
是的,这是一个有点愚蠢的问题,但如果您对此有所了解,请解释我。所以,在添加观察者时,我不能错过传递对象的任何优势。
根据question's answer,我仍然感到困惑。如果只是为了过滤它为什么不是布尔类型以及它需要哪种对象。如果可能的话请用一些例子解释我。
此致
答案 0 :(得分:0)
object参数是一个过滤器:观察者方法仅在通知的发件人是给定对象时才接收通知。您可能有多个发件人用于通知类型。 object参数标识发件人。将对象设置为desiredSender
类似于
- (void)testmethod:(NSNotification *)notification {
if(notification.object == desiredSender) {
...
}
}
如果您传递nil
而不是对象,则会收到所有发件人的通知。