我正在阅读Stephen G. Kochan撰写的“Objective C中的编程”,并在第11章中他简要地谈到了:类别,协议,授权,非正式协议。
现在,他刚刚谈了一下他们中的每一个人,这让我更加困惑......我知道代表团是对象中最重要的主题之一,它与协议一致。
请帮忙,这对我来说很重要,所以我不会搞砸。 TNX
答案 0 :(得分:4)
我会尝试为你解释代表团。当你知道的时候它真的很简单,但需要时间来解决它!
假设您有两个类,一个执行计算的Calculator
类和一个用于向用户显示计算结果的CalculatorScreen
类。 Calculator类应该告诉CalculatorScreen何时完成计算,以便后者可以更新UI。
协议提供了一种定义一组与指定名称相关的方法的方法。您可以在Calculator类中的一个名为CalculatorDelegate的协议中定义定义的方法,但 implements 方法在别处定义。
定义协议的类(在本例中为Calculator)可以告诉委托(符合对象的协议 - 在本例中为CalculatorScreen)实现方法。计算器类可能会完成一个加法计算并告诉其委托(屏幕)更新。你找到了我?
对不起,在我写作的过程中,我意识到很难解释和同情每一位尝试的作者!
iOS示例: 在iPad的显示器上设置表格时,使用UITableView类。但是那个类不知道表的标题是什么,或者它有多少部分和行,或者填充它的内容。因此,它通过定义名为UITableViewDataSource和UITableViewDelegate的协议将责任委托给您。当UITableView需要知道某些信息(例如行数)时,它会调用委托(您自己的类)上的相应方法,委托类包含协议中定义的那些方法的实现。
在回答你的问题时,我会放弃这本书并开始编写你在虚拟应用程序中学到的东西!最好的学习方法是(至少对我而言)。