我一直在学习有关iOS编程的委托和数据源,需要问一下,制作数据源协议时需要做什么而不是委托协议?委托和数据源iOS
另外我怎样才能实现一个委托中的许多相同的对象代表?示例一个具有许多独特定制警报的对象。
- 编辑 -
用于第二部分的一个例子:
,其具有每四个不同的警报用不同的按钮一个目的。由于对象需要通过成为警报委托来指定每个按钮的工作方式。我将如何设置委托方法来确定每个警报?
我一直在学习有关iOS编程的委托和数据源,需要问一下,制作数据源协议时需要做什么而不是委托协议?委托和数据源iOS
另外我怎样才能实现一个委托中的许多相同的对象代表?示例一个具有许多独特定制警报的对象。
- 编辑 -
用于第二部分的一个例子:
,其具有每四个不同的警报用不同的按钮一个目的。由于对象需要通过成为警报委托来指定每个按钮的工作方式。我将如何设置委托方法来确定每个警报?
这两种类型的物体或多或少都有相同的表现方式,这是他们做的事情的问题。
委托类型对象响应另一个对象所采取的操作。例如,UITableViewDelegate
协议具有用于在用户选择表格中的特定行时执行动作的方法,例如didSelectRowAtIndexPath
。
数据源类型对象将数据提供给另一个对象。再次例如,UITableViewDataSource
协议具有诸如cellForRowAtIndexPath
和numberOfRowsInSection
的方法来指示应该在表格中显示什么。
这两者在编译方面并没有很大的区别,它只是一种编码风格,使得对象对代码的用户做的事情非常清楚。
编辑:
要回答你的第二个问题:如果你希望每个警报不同的反应,你需要编写每个警报不同的委托。例如,如果您的某个警报是保存确认警报(也许您将覆盖文件,并且弹出以确认用户想要执行的操作),则您将拥有如下对象:
@interface SaveConfirmAlertDelegate : NSObject<UIAlertViewDelegate>
@end
而在@implementation
的SaveConfirmAlertDelegate
中,您将实现正确的保存功能,具体取决于用户在警报中按下哪个按钮。
当您创建一个警报视图时,您可以指定委托对象应该是什么,这不一定是self
。您可以将您的四位代表存储为不同的对象,并根据需要将它们设置为警报。
我希望这可以清理东西
感谢您解释我的第一个问题。我为我的问题添加了一个例子。 – RMDan
@RMDan我为你的第二个问题添加了一个额外的解释,我希望能够清楚一点 –
这非常有道理。我将不得不更多地了解代表团,但它开始有意义。 – RMDan