【发布时间】:2010-07-07 04:35:11
【问题描述】:
我有一些涉及委托的编码实践,但我不确定。首先,如果委托协议没有可选方法(都是必需的),是否推荐使用respondsToSelector: 来检查委托对象是否实现了该方法?其次,在调用方法之前,我是否需要检查委托是否不是nil?在我的简短实验中,在 nil 对象上调用方法没有任何作用,但这里推荐的做法是什么?
谢谢
【问题讨论】:
标签: objective-c delegates protocols
我有一些涉及委托的编码实践,但我不确定。首先,如果委托协议没有可选方法(都是必需的),是否推荐使用respondsToSelector: 来检查委托对象是否实现了该方法?其次,在调用方法之前,我是否需要检查委托是否不是nil?在我的简短实验中,在 nil 对象上调用方法没有任何作用,但这里推荐的做法是什么?
谢谢
【问题讨论】:
标签: objective-c delegates protocols
首先,如果一个委托协议 没有可选方法(所有 必需),是否推荐 练习使用 respondsToSelector: 来 检查委托对象是否 实现那个方法?
如果需要,则不应检查它。这是必需的,对吗?对于可选方法,您一定要检查。
其次,我是否需要检查委托之前是否不为零 调用它的方法?在我的简介中 实验,在 nil 上调用方法 对象什么都不做,但是什么 这里是推荐的做法吗?
是的,您的观察是正确的。向 nil 发送消息是无害的。至于最佳实践,如果委托为 nil,则代码的调用者对您提供的任何委托方法都不感兴趣,因此无需在那里进行任何额外的检查。
【讨论】: