将自定义属性添加到MKAnnotation

时间:2013-02-13 07:23:25

标签: iphone ios objective-c mkmapview mapkit

我正在尝试为我的MKAnnotation添加自定义值。我想让它存储该位置的唯一ID。我用标题和副标题设置注释的代码如下:

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"];

任何帮助都会很棒。谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

  1. 右键单击项目并选择“新建文件”
  2. Cacoa Touch> 下一步
  3. 提供类别:category_name&类别:category_on_class
  4. 在.h文件中只创建placeId的属性
  5. 在.m中使用@dynamic
  6. 进行合成
  7. 将.h文件导入您的文件。
  8. 然后你可以在该类的“classObject”对象上拥有“classObject.placeId”属性。

答案 1 :(得分:1)

做Bhargavi所说的,但要做到MapViewAnnotation.m和MapViewAnnotation.h