- (void)postNotificationName:(NSString *)notificationName
object:(id)notificationSender
有人可以帮我理解上述方法中的object
参数吗?
我用过
[[NSNotificationCenter defaultCenter] postNotificationName:@"Downloadfinished"
object:self];
和
[[NSNotificationCenter defaultCenter] postNotificationName:@"Downloadfinished"
object:nil];
他们两个都在我的案例中工作。但我想了解论点的作用以及我应该传递的内容。
答案 0 :(得分:2)
来自文档:
notificationSender
The object posting the notification.
这就是全部,你可能需要它,或者你可能不需要它。如果您在收到通知时没有使用它,那么无论它是否为零都无关紧要。
查看文档:
答案 1 :(得分:1)
NSNotification
具有以下三个属性:
name
- 通知的唯一标识符。object
- 一个id
参数,可以传递给接收方,并且可以在接收端用于任何目的,如果需要的话userInfo
- NSDictionary
对象:如果您想传递多个对象,请使用键/值对创建一个NSDictionary,然后传递它。如果您不想向接收者传递任何内容,请将nil
传递给object
。
答案 2 :(得分:0)
案例:自我
当您将对象写为Self或任何其他Object时,它意味着 通知将与对象一起触发将对象作为传递 通知的参数。
您将获得如下对象:
示例强>
[[NSNotificationCenter defaultCenter] postNotificationName:kProductsLoadedNotification object:self];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(productsRequestCompleted:)
name:kProductsLoadedNotification
object:self];
- (void)productsRequestCompleted:(NSNotification *)notification
{
NSLog("%@",[notification object]); //You will get the Parameter
}
何时
案例:无
当你将对象写为nil时,它意味着 通知将在没有对象的情况下触发而不传递Object作为 通知的参数。