UIView子类未收到NSNotificationCenter通知

sel*_*ame 1 objective-c uiview nsnotification nsnotificationcenter ios

我之前使用过NSNotificationCenter进行应用程序范围的消息传递,但今天我发现了一个奇怪的漏洞.在客户的项目上工作有一些UIView子类需要接收我已经在应用程序中的其他地方发布/接收的NSNotifications.

我从init方法调用addObserver:self并使用#defined常量作为通知名称.当我注册接收的通知被发布时,正在侦听的所有其他对象(所有UIViewController子类)都会获得除我的UIView子类之外的通知.

有没有人成功使用过UIView子类中的NSNotificationCenter?我已经尝试过断点和NSLog,但我的@selector永远不会被调用.

编辑 - 视图是使用loadNibNamed创建的:并且initWithCoder:未在类中实现.在initWithCoder中注册通知:效果很好.

Gav*_*vin 5

确保调用您实现的特定init方法.在您注册通知的位置设置断点,可以让您看到它是否被击中.有时当一个类有多个init方法时,根据它的初始化方式,并不是所有的方法都会被调用.例如,如果您以编程方式创建实例,则UIViewController将调用不同的init方法,如果您从故事板中获取了一个实例.