如何创建NSNotification

时间:2011-07-06 21:10:44

标签: objective-c cocoa

我认为这很容易,但事实并非如此。我在这里搜索stackOverflow并没有找到答案。我只想像变量一样创建NSNotification

我已经配置了监听器并且具有有效的功能。所以,如果我发送:

[[NSNotificationCenter defaultCenter] postNotificationName:@"name" object:nil];

这没有问题。但是,如果我在同一个地方尝试:

NSNotification *test = [NSNotification notificationWithName:@"name" object:nil];
[[NSNotificationCenter defaultCenter] postNotification:test];

它不起作用。我做错了什么?

修改

此错误出现在XCode中:

 -[object function]: unrecognized selector sent to instance 0x190d90
 *** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: '-[object function]: unrecognized selector sent to instance 0x190d90'

修改2

是个错误。我不相信我开始这个问题。 @“name”中存在一个非常小的错误,它们在我的代码中有所不同,例如@"nname"@"name"

因为我学到了两件事:

  • 请勿尝试使用postNotification。只有在没有别的办法的时候。这很难调试,可能会导致错误。
  • 在必须写很多时间时,始终只使用一个变量,例如#define NAME @"name"会为我节省大量时间。

1 个答案:

答案 0 :(得分:2)

对我来说,问题不在于您发布通知的方式,而在于您收听通知的方式。你可能已经告诉监听类调用一个不存在的选择器。