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中注册通知:效果很好.
确保调用您实现的特定init方法.在您注册通知的位置设置断点,可以让您看到它是否被击中.有时当一个类有多个init方法时,根据它的初始化方式,并不是所有的方法都会被调用.例如,如果您以编程方式创建实例,则UIViewController将调用不同的init方法,如果您从故事板中获取了一个实例.
| 归档时间: |
|
| 查看次数: |
1225 次 |
| 最近记录: |