Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
来自Java开发人员POV的iOS代表_Java_Iphone_Objective C_Ios_Delegates - Fatal编程技术网

来自Java开发人员POV的iOS代表

来自Java开发人员POV的iOS代表,java,iphone,objective-c,ios,delegates,Java,Iphone,Objective C,Ios,Delegates,我已经做了几年Java开发人员,大约一年前开始从事Android开发。在攻克安卓系统之后,我试图用iOS来测试我的运气。到目前为止还不错,但我对“代表”的想法仍然很模糊。我在这里读了几篇文章,但仍然没有最好的想法。对我来说,它们似乎类似于Java中的继承,例如使用接口或抽象类 有人能以我能理解的观点澄清一下吗 提前感谢。使用对象时,可以从其类继承一些回调方法。基本上,当对象发生事件时,您可以进行响应 对象类正在将该事件“委托”给类实例 不,这与继承的概念不同 我想说,这就像AWT/Swing中使

我已经做了几年Java开发人员,大约一年前开始从事Android开发。在攻克安卓系统之后,我试图用iOS来测试我的运气。到目前为止还不错,但我对“代表”的想法仍然很模糊。我在这里读了几篇文章,但仍然没有最好的想法。对我来说,它们似乎类似于Java中的继承,例如使用接口或抽象类

有人能以我能理解的观点澄清一下吗


提前感谢。

使用对象时,可以从其类继承一些回调方法。基本上,当对象发生事件时,您可以进行响应


对象类正在将该事件“委托”给类实例

不,这与继承的概念不同

我想说,这就像AWT/Swing中使用的侦听器方法。例如:

class MyActionListener implements ActionListener {
  public void actionPerformed(ActionEvent e) { ... }
}

myComponent.addActionListener(new MyActionListener);
在ObjC中使用委托方法的情况如下所示:

@class MyActionListener : NSObject<NSActionListener>

-(void) actionPerformed:(NSEvent*)event;

@end

myComponent.delegate = [[[MyActionListener alloc] init] autorelease];
@class MyActionListener:NSObject
-(无效)执行的行动:(N事件*)事件;
@结束
myComponent.delegate=[[[MyActionListener alloc]init]autorelease];

实际上,您将一个类的某些行为委托给组合(而不是继承)使用的特定的其他对象,以便在需要时调用委托方法(用于回调、用于提供特定实现等等)

因此,基本上,我正在拦截对该类的预定义方法的调用,它将改为我的自定义代码?据我所知,是的。您正在成为事件处理程序,而不是该对象的类。这是一个很好的解释。你说得比我好。这解决了我的问题:)谢谢。我马上接受你的回答。