[[NSNotificationCenter defaultCenter] postNotificationName:@"TapNewProduct" object:self.productID];
(或)
NSDictionary *dict = @{@"productID":self.productID};
[[NSNotificationCenter defaultCenter] postNotificationName:@"TapNewProduct" object:nil userInfo:dict];
哪个是上面两个更好的方法?
答案 0 :(得分:2)
您的第一个选项会滥用发件人'通知的参数因为它很简单。它会起作用,但它是不正确的。使用该参数的想法是,您可以使用它来过滤您收到的通知。如果你那样使用它就好了,但它不能传递用户信息。
所以,第二个选项是正确的。
想象一下,将来会有其他人来帮助您的项目 - 您的代码编写得越多越符合标准,他们就越容易帮助您。
答案 1 :(得分:0)
在这两种方法中,你将获得相同的输出。您将通过notification.object获取对象。 但在此,
[[NSNotificationCenter defaultCenter] postNotificationName:@"TapNewProduct" object:self.productID];
无需创建字典。它可以减少代码。
答案 2 :(得分:0)
object
参数是" notificationSender",即发布通知的对象。 userInfo
参数旨在包含有关通知的信息,可能为零。
答案 3 :(得分:0)
postNotificationName:object:
方法使用userInfo参数postNotificationName:object:userInfo:
调用nil
。所以基本上没有理由争论哪一个比另一个好。