1
34
当您调用委托的可选方法时,您需要确保它在调用之前响应选择器:
|
2
10
可选协议方法只是意味着实现该协议的对象不必实现所讨论的方法——然后被调用方必须在调用之前检查对象是否实现了该方法(否则,您会崩溃,正如您所注意到的)。这些NSObject HOM类别可能会有所帮助:
然后你可以简单地做:
|
3
4
一旦你对正在发生的事情了如指掌,这个阻塞解决方案就很有效了。我添加了一个BOOL结果,因为我希望能够有条件地运行几个可选方法中的一个。如果您正在尝试实施此解决方案,请提供以下提示: 首先,如果您还没有遇到扩展/类别,只需将其添加到类的顶部,即现有类定义之外。它将是一个公共或私有的扩展,取决于你把它放在哪里。
其次,下面是如何从代码中调用它:
代替 Param1:Param2:ParamN: 协议方法的每个参数的名称。每一个都应该以冒号结尾。 因此,如果您的协议方法如下所示:
最后一行是这样的:
|
4
2
通过将此添加到NSObject,您可以有条件地执行任何@optional方法,无论它可能有多少个参数。 看见 How to safely send @optional protocol messages that might not be implemented |
Martin sku · 在目标C中打印时间 2 年前 |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
James Chan · 如何使用锁定/解锁? 6 年前 |
Josh F. · NSBundle mainBundle返回零 6 年前 |