我目前正在学习 Obj-C,更具体地说 - 协议。为了让我的问题有意义,我需要在这里编造一个场景。
第一个例子(有一个代表)。
我是一个 UIView 子类,它请求从它的控制器显示信息(或者更确切地说应该如何显示信息)。我声明了一个协议并创建了一个委托引用对象(或其他任何名称):
@property (nonatomic, weak) id <protocolName> dataSource;
我的控制器符合此协议并实现所需的方法。
- View 向 Controller 发送消息,Controller 应答,一切正常。
据我所知,这是通过协议授权,我相信我理解它。
但是让我们考虑另一种情况。
- 我是一个类,它是一个简单的基于级别的游戏的大脑。我说何时显示菜单或何时开始玩游戏关卡。但我需要知道一个关卡何时完成。
这意味着这个类需要准备好接收来自任何实现该协议的人的消息,例如来自负责当前级别的另一个类。现在这是我不明白的。协议应该是什么样子以及在哪里/如何实现它?
如果我的问题仍然没有意义,请告诉我。谢谢!