gpt4 book ai didi

ios - [MKAnnotation] 警告 : '-setTitle:' not found in protocol(s)

转载 作者:行者123 更新时间:2023-11-28 20:46:41 26 4
gpt4 key购买 nike

我有一个名为 MyAnnotation 的子类来管理注释协议(protocol),我的问题是当我构建应用程序时,它给了我这个警告:

'-setTitle:' not found in protocol(s)   

编译器将我指向导致警告的这一行:

annView.annotation.title = @"You are here";

其中 annView 是一个 MKPinAnnotationView :

MKPinAnnotationView *annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentLoc"];

你能帮我解决那个警告吗?提前致谢:)

最佳答案

annotation MKPinAnnotationView的属性(property)(它是 MKAnnotationView 的子类)属于 id<MKAnnotation> 类型它没有定义 -setTitle:方法。

但是,如果您的类实现了 MKAnnotation协议(protocol)定义了一个 -setTitle:方法本身(例如,使用 @property 声明),然后您可以按如下方式设置标题:

MyAnnotationClass *myAnnot = (MyAnnotationClass *)annView.annotation;
myAnnot.title = @"You are here";

但是您应该在创建注释时和调用 addAnnotation 之前设置注释的标题。而不是在 viewForAnnotation 中设置它.

此外,将您的类(class)命名为 MkAnnotation可能不是一个好主意。它很容易与 MKAnnotation 混淆协议(protocol)。使用类似 MalekAnnotation 的东西相反。

关于ios - [MKAnnotation] 警告 : '-setTitle:' not found in protocol(s),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5710416/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com