0

使用 NSNotificationCenter ,它运行良好,直到我开始向其他班级发送非常快速的消息。

什么是快?它在第二个大约 30-40 通知。我什至没有得到其中之一。还有其他方法吗?我应该更新一个全局变量吗?

//post data out .
 - (void)post:(NSString*)string
 {
     NSLog(@"done"); //the log is printing 
     NSDictionary *userInfo = nil;
     [[NSNotificationCenter defaultCenter] postNotificationName:@"connector"
                                                         object:string
                                                       userInfo:userInfo];
 }

我知道观察者很好,因为以前可以使用相同的代码。非常感谢 。

4

2 回答 2

3

如果您每秒发送 30-40 条通知,您应该重新考虑一下您的实施。

这里有一些替代方案:

  1. 为回调创建自己的委托
  2. 使用块

NSNotificationCentre 的问题在于它将消息发送给每个观察者 - 这可能会变慢,通常用于更新状态更改(登录/注销)的视图。

于 2013-09-25T19:04:25.220 回答
2

看起来您设置了错误的object,应该是发布通知的对象(或nil)。我认为你应该做的添加stringuserInfo

NSDictionary *userInfo = @{@"somekey" : string };
[[NSNotificationCenter defaultCenter] postNotificationName:@"connector"
                                                     object:self
                                                   userInfo:userInfo];
于 2013-09-25T19:00:16.820 回答