代表如何在目标C中工作?

代表如何在目标C中工作?

  1. 有谁知道我在哪里可以找到一个很好的解释/教程,说明应用程序委托是如何工作的?

    objective-C?

  2. 这两本书我已经不多讲了

    delegates

    我对它们的解释不够充分,也不能很好地理解它们的力量和作用。


慕森卡
浏览 351回答 3
3回答

慕后森

如上所述,委托不是IOS或Object-C的特性,而是一种编程技术,不需要特定的语言支持。一个类(e,g,class A)可以写成getData和DoSomething方法可以通过委托(可能因为classA不知道数据将是什么或它必须做什么)来实现。为此,classA提供了一个属性,通常称为代表,(它只是实现委托方法的类-委托的指针),然后,当它想调用这些方法时,它实际上调用了委托中的方法:[self.delegate getData];和[self.delegate doSomething];self.delegate可能最初设置为self:self.delegate = self;也就是说,class A实现了这些方法的自己版本,除非它们被委派。任何其他类,如果希望成为方法的实现者(即委托,并可能重写classA的默认实现),将首先将classA的委托设置为自身。因此,如果classB想成为这些方法的委托,那么在classB中,我们将拥有:classA.delegate = self;所以当classA调用这些委托的方法时,它实际上是调用classB来实现这些方法,而不知道关于classB的任何信息,甚至不知道它的存在,而且class B不需要子类classA。其限制是,classB只能覆盖类A希望委托的方法-通过子类,您可以重写任何方法。协议通过定义一个方法列表将委托过程正规化。必由委托实现(委托方不提供方法的默认版本,方法必须在某个地方实现),也可以由委托实现(即委托程序有自己的版本,或者方法没有被执行也没关系)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

iOS