iOS是否有更好的替代基于通知的代码?

时间:2014-01-19 19:26:54

标签: ios objective-c architecture nsnotificationcenter nsnotification

我正在为我的某个应用程序实现“新游戏”功能并遇到一个问题,偶尔我的代码崩溃,因为通知发送到解除分配的对象。只有几个地方可以生成和使用通知。我清理了这些点周围的代码,但仍然偶尔发生崩溃。

我可以想到两种避免通知的方法 - 一个集中的“数据管理器”类,可以将消息传递给应用程序的不同部分或协议和代理。两者都可能很难实现,所以我的问题是:

当我只需知道应用程序中其他2个类中的某些更改时,是否有更好的方法来编写没有通知的代码?

有没有办法使用某种“弱自我”引用来注册通知,以避免必须处理解除分配的实例?

1 个答案:

答案 0 :(得分:3)

一般来说,代表团听起来对你的情况要好得多。如果要最小化代码,可以使用块来实现委派。

确保所有观察者的对象都从dealloc方法中的所有观察中移除:

[[NSNotificationCenter defaultCenter] removeObserver:self];