我无法确定如何判断哪个对象发布了通知。
我订阅了对象A :
中的通知[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receivedNotification:) name=@"ReceivedData" object:nil]
我发布了来自对象B的通知:
[[NSNotificationCenter defaultCenter] postNotificationName:@"ReceivedData" object: self userInfo: dict];
我在对象A :
中收到通知- (void) receivedNotification: (NSNotification*) notification
{
// Method is hit fine, notification object contains data.
}
如何判断发送数据的对象B ,而不是对象C ?我需要一个对发件人的引用。我不想将发件人添加到正在传递的通知对象中,因为我在对象B
中调用通知时指定了发件人答案 0 :(得分:3)
NSNotification
类有一个名为object的方法,它返回与通知关联的对象。这通常是发布此通知的对象。
- (void) receivedNotification: (NSNotification*) notification
{
...
id myObject = [notification object];
...
}
答案 1 :(得分:0)
如果您只想处理来自B类的通知,则在订阅通知时将其指定为对象(您已将其留作nil
)。
使用nil
,您会收到发布该特定通知的所有对象的通知。
修改强>
您致电[notification object]
以了解发布通知的对象。