C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – @optional协议方法的真实世界示例大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前正在学习Objective-C,并且在协议中遇到了可选的方法.我的背景是C#,可以看到一个协议类似于C#接口.

在C#接口代表合同的地方,通过广告一个Interface,你说你将实现定义的方法.

虑到这一点,我很困惑为什么你会需要定义一个可选的方法.这不是贬低或试图减轻Objective-C,我喜欢Objective-C.我只想了解这些可选方法的好处,以便更好地了解该语言.

如果有人可以提供一些现实世界的场景(带有示例代码),那么可选方法是有用的,我真的很感激.

解决方法

我给你一个例子.我有一些与Flickr API交谈的ObjC类.一个叫做FKAccount的用户可以做很多与Flickr用户帐户相关的事情,包括下载用户的照片,获取他们的联系人列表等等.

FKAccount@L_618_18@了委托协议FKAccountDelegate.该协议规定了FKAccount将根据Flickr的各种网络操作的成功或失败为其委托而调用的一些回调方法.并不是每个使用FKAccount的应用程序都会对FKAccount可以执行的每个Flickr操作感兴趣.

如果要求每个声明实施FKAccountDelegate协议的类都实现了每个方法,那么最终会得到很多存根方法(FWIW,FKAccountDelegate中定义了41种方法).当这些方法在协议中声明为@optional时,代理只需要实现它有兴趣接收的回调.

FKAccount类检查其委托通过以下方式响应协议中的@optional方法

if([self.delegate respondsToSELEctor: @SELEctor(accountDidDownloadContacts:)]) {
    [self.delegate accountDidDownloadContacts: self];
}

大佬总结

以上是大佬教程为你收集整理的objective-c – @optional协议方法的真实世界示例全部内容,希望文章能够帮你解决objective-c – @optional协议方法的真实世界示例所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。