将自定义属性添加到MKAnnotation
问题描述:
我想向我的MKAnnotation添加自定义值。我想让它存储该位置的唯一ID。我设置了标注有标题和副标题的代码是这样的:将自定义属性添加到MKAnnotation
location.latitude = [dictionary[@"placeLatitude"] doubleValue];
location.longitude = [dictionary[@"placeLongitude"] doubleValue];
newAnnotation = [[MapViewAnnotation alloc] initWithTitle:dictionary[@"placeName"]
andCoordinate:location];
newAnnotation.subtitle = dictionary[@"placeCity"];
我将如何添加自定义属性,例如“placeId”?这是我有:
newAnnotation.placeId=dictionary[@"placeId"];
任何帮助将是伟大的。谢谢!
答
如果MapViewAnnotation是MKAnnotation/MKAnnotationView的子类,那么只需为它创建属性,合成并使用。如果不是,则通过MKAnnotationView创建类别。
以下是创建类别类的步骤。
- 右键单击项目,选择 “新建文件”
- Cacoa触摸>的Objective-C类>接下来
- 给分类:CATEGORY_NAME &类别上:在.h文件中category_on_class
- 刚刚创建属性placeId
- in .m使用@dynamic合成它
- 将.h文件导入到您的文件中。
然后,您可以在该类的“classObject”对象上具有“classObject.placeId”属性。
+0
为什么添加一个类别而不是编辑MapViewAnnotation本身?据我所知,这只是布兰登编造的一堂课。 – Craig 2013-02-14 08:24:53
答
不要巴尔加维说什么,但这样做是为了MapViewAnnotation.m和MapViewAnnotation.h
嗨巴尔加维,你知道我怎么会去这样做? – Brandon 2013-02-13 07:27:12
使用类别类 – 2013-02-13 07:33:29