gpt4 book ai didi

iphone - 在 ios 中创建自定义注释类时遇到问题

转载 作者:行者123 更新时间:2023-12-01 19:12:18 24 4
gpt4 key购买 nike

我正在尝试制作一个自定义 MKAnnotation 类,以便它可以保存其他信息,但我不断收到此错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-    [AnnotationForId setCoordinate:]: unrecognized selector sent to instance 0x16f63340'

我已经尝试查找如何创建一个,并且我已经按照我在网上找到的内容进行了操作,但我对为什么我不断收到此错误感到困惑。

这是我的自定义注释类。
#import <MapKit/MapKit.h>
#import <UIKit/UIKit.h>

@interface AnnotationForId : NSObject <MKAnnotation >{
NSString *title;
NSString *subtitle;
CLLocationCoordinate2D coordinate;
NSInteger shopId;
}
@property(nonatomic)NSInteger shopId;
@property (nonatomic, copy) NSString * title;
@property (nonatomic, copy) NSString * subtitle;
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@end

我已经在 .m 类中合成了属性变量。

我尝试在我的主 Controller 中调用自定义类:
for(Shop *shops in feed.shops){
NSLog(@"reached");
AnnotationForId *shop = [[AnnotationForId alloc] init];
CLLocationCoordinate2D coords = CLLocationCoordinate2DMake(shops.latitude, shops.longitude);
shop.coordinate = coords;
//[[CLLocationCoordinate2DMake(shops.latitude, shops.longtitude)]];
shop.title = shops.name;
shop.subtitle = @"Coffee Shop";
[map addAnnotation:shop];
}

对为什么这不起作用的任何帮助都会很棒。
谢谢。

最佳答案

似乎您正在尝试设置您的只读属性。

您将其声明为只读:

@property (nonatomic, readonly) CLLocationCoordinate2D  coordinate;

但随后您尝试使用 setter:
shop.coordinate = coords;

只读 意味着不会为其他类定义 setter 来利用。

编辑:
我认为您应该将便捷初始化程序添加到您的 AnnotationForId类如:
-(id)initWithCoordinate:(CLLocationCoordinate2D)coord
{
self = [super init]; // assuming init is the designated initialiser of the super class
if (self)
{
coordinate = coord;
}
return self;
}

因此,您的代码将如下所示:
for(Shop *shops in feed.shops){
NSLog(@"reached");
CLLocationCoordinate2D coords = CLLocationCoordinate2DMake(shops.latitude, shops.longitude);
AnnotationForId *shop = [[AnnotationForId alloc] initWithCoordinate:coords];
//[[CLLocationCoordinate2DMake(shops.latitude, shops.longtitude)]];
shop.title = shops.name;
shop.subtitle = @"Coffee Shop";
[map addAnnotation:shop];
}

关于iphone - 在 ios 中创建自定义注释类时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682838/

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