我目前正在学习Objective-C,并在Protocols中遇到了可选方法。我的背景是C#,可以将协议视为类似于C#接口的东西。
如果有人能提供一些可选方法有用的真实场景(带示例代码),我将不胜感激。
FKAccount 可以做很多与Flickr用户帐户相关的事情,包括下载用户的照片、获取他们的联系人列表等。
FKAccount
FKAccountDelegate FK帐户 FK帐户 将对Flickr的每一项业务感兴趣 FK帐户 可以执行。
FKAccountDelegate
FK帐户
如果要求每个声称实施 协议实现了每个方法,你最终会得到很多存根方法(FWIW,中定义了41个方法 ).当这些方法被声明时 @optional 在协议中,委托只需要实现它感兴趣的回调。
@optional
FK帐户 @可选
@可选
if([self.delegate respondsToSelector: @selector(accountDidDownloadContacts:)]) { [self.delegate accountDidDownloadContacts: self]; }