-7

我一直在这里闪过一些关于 xcode iOS 编程的问题,而且我看到越来越多的人说“作为 blabla 的代表”这样的话:

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation
{
    currentLocationAnnotation = [annotation retain];
}

但我永远无法帮助我,因为我不明白这意味着什么,以及我必须把它放在哪里,如果我把它放在我的 .m 文件中,它就不起作用,如果我把它放在我的 AppDelegate.m它也不起作用。

请帮忙 :)

4

3 回答 3

0

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

于 2013-10-26T13:19:49.453 回答
0

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

于 2013-10-26T14:37:33.680 回答
-1

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

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

当然,它现在需要委托的立即响应,而“附在下面”是“注释”参数。希望能帮助到你。

于 2013-10-26T13:14:56.410 回答