ios - 捕获 NSNotification postNotification 的错误

标签 ios objective-c iphone nsnotificationcenter

如果 NSNotificationCenter postNotificationName 由于未找到观察者或任何其他原因而未能发布,如何捕获?

  • 在我的例子中,有时 postNotificationName 在添加观察者之前被调用,所以我想处理这种情况

我尝试的是一些糟糕的解决方案:

我创建了一个全局NSArray,当执行postNotificationName时,我在该数组中插入通知详细信息,然后在观察者实际收到通知时清空该数组,我使稍后在其他类中检查它是否为空,如果不是,则 postNotificationName 失败。

最佳答案

这确实不是 NSNotificationCenter 的工作原理。它以一对多的方式将消息(NSNotification)分发到将自身添加为监听器的其他对象。仅仅因为通知被一名监听器收到,并不意味着它被所有监听器收到。如果没有类注册为监听器,则帖子不会“发布失败”,只是没有对象可以监听。

听起来您正在寻找的是一个排队系统。忘记NSNotificationCenter,只需使用NSArray作为排队机制,或者从那里获得更详细的信息。

关于ios - 捕获 NSNotification postNotification 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30326466/

相关文章:

ios - 如何从MetricKit触发有效负载进行开发和调试

ios - iOS 6 上无法获取ABAddressBook(无隐私提示返回空数据库)

ios - 如何使用 gdata 检索谷歌日历事件的描述?

iphone - 滑动删除不起作用

iphone - 尝试覆盖 AppDelegate 实现文件中的 UINavigationBar

iphone - 通过 iOS 应用程序发布到用户墙时的隐私设置

objective-c - nsrange.location 不完全是麻烦 makerange 子串 ios objective c

objective-c - mouseDragged 未在 NSView 的框架外调用

ios - 分析发现私有(private) API 使用,尽管我已经更改了该代码

iphone - 自定义导航栏