在发送消息之前检查有效的委托对象

Joh*_*lph 3 cocoa delegates objective-c retain

我正在尝试在Objective-C中实现委托模式,但是我有时会在调用委托时遇到Bad Access异常.这似乎是由代表被释放引起的.Apple不建议保留代表.

在尝试发送消息之前,如何检查我的代理是否仍然有效?

Phi*_*ert 8

如果代表有可能被安装者释放,那么你的设计就会出现问题.您应该只对寿命比委托本身更短的对象设置委托.例如,在子视图/控制器上设置委托是很好的,因为子视图/控制器的寿命比调用者短.

AFAIK,没有可靠的方法来检测对象是否已经被释放.