Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.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
iOS中的委托是什么?_Ios_Objective C - Fatal编程技术网

iOS中的委托是什么?

iOS中的委托是什么?,ios,objective-c,Ios,Objective C,我在这里快速浏览了一些关于xcode iOS编程的问题,我看到越来越多的人说“作为blabla的代表”之类的话: - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation { currentLocationAnnotation = [annotation retain]; } -(MKAnnotationView*)地图视图:(MKMa

我在这里快速浏览了一些关于xcode iOS编程的问题,我看到越来越多的人说“作为blabla的代表”之类的话:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    currentLocationAnnotation = [annotation retain];
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:(id)注释
{
currentLocationAnnotation=[annotation retain];
}
但我永远也帮不了我,因为我不明白这意味着什么,我必须把它放在哪里,如果我把它放在我的.m文件中,它就不起作用,如果我把它放在我的AppDelegate.m中,它也不起作用


请帮忙:)

一开始有点难。类的委托类似于该类事件的处理程序。例如,对于map view类,您设置了一个委托(例如,您的自定义类),并在自定义类中开始实现处理程序(它不一定需要处理事件。例如,表视图询问其委托将有多少行,它们的高度等)。例如,在您发布的示例代码中,映射视图要求其委托返回作为参数发送的注释对象的视图。您需要在类中实现逻辑以返回适当的对象

用英语来说,可以把它想象成一封电子邮件:“你好,我的代表,作为你工作的一部分,我希望你能给我一个我在下面附上的注释视图,谢谢,地图视图。”


当然,它现在需要代理立即做出响应,“attached down”是“annotation”参数。希望对您有所帮助。

在您的代码中,这是自定义委托,这意味着它就像一个助手对象一样工作,在这个对象中,可以使用自定义委托中实现的任何方法。

这是一种设计模式,您可以在其中注册一个对象(委托),该对象符合指定的协议,使用其他类的另一个实例,该类在希望委托执行某些工作时调用第一个对象“协议方法”(委托方法)。当对象只想“外包”部分工作时,这通常用于避免不必要的子类化

研究概念文档。您将很快了解什么是委托模型以及它是如何工作的。