2013-02-13 168 views
1

我想向我的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"]; 

任何帮助将是伟大的。谢谢!

+0

嗨巴尔加维,你知道我怎么会去这样做? – Brandon 2013-02-13 07:27:12

+0

使用类别类 – 2013-02-13 07:33:29

回答

2

如果MapViewAnnotation是MKAnnotation/MKAnnotationView的子类,那么只需为它创建属性,合成并使用。如果不是,则通过MKAnnotationView创建类别。

以下是创建类别类的步骤。

  1. 右键单击项目,选择 “新建文件”
  2. Cacoa触摸>的Objective-C类>接下来
  3. 给分类:CATEGORY_NAME &类别上:在.h文件中category_on_class
  4. 刚刚创建属性placeId
  5. in .m使用@dynamic合成它
  6. 将.h文件导入到您的文件中。

然后,您可以在该类的“classObject”对象上具有“classObject.placeId”属性。

+0

为什么添加一个类别而不是编辑MapViewAnnotation本身?据我所知,这只是布兰登编造的一堂课。 – Craig 2013-02-14 08:24:53

1

不要巴尔加维说什么,但这样做是为了MapViewAnnotation.m和MapViewAnnotation.h

相关问题