1

我正在使用 JSONModel ( https://github.com/icanzilb/JSONModel ) 来处理我的 JSON 数据。我只是遇到与CLLocationCoordinate2D在我的子类中添加属性有关的问题JSONModel,以便响应MKAnnotation协议。由于传入的 JSON 不包含坐标字段,而是用 Lat & Lon 分隔的字段,并且由于CLLocationCoordinate2D不是对象,所以JSONModel让我忽略协议。

这是我的代码:

@protocol Store @end
@interface Store : JSONModel <MKAnnotation>

@property (nonatomic, copy, readonly) NSString *Name;
@property (nonatomic, copy, readonly) NSNumber *Longitude;
@property (nonatomic, copy, readonly) NSNumber *Latitude;

//Can be ignored since it is not an object type. 
@property (nonatomic, assign) CLLocationCoordinate2D <Ignore> coordinate;
@end

如何忽略坐标属性?

4

1 回答 1

3

只需检查文档

http://cocoadocs.org/docsets/JSONModel/0.11.0/Classes/JSONModel.html#//api/name/propertyIsIgnored:

这是您的模型的代码:

+ (BOOL)propertyIsIgnored:(NSString *)propertyName
{
  if ([propertyName isEqualToString:@"coordinate"]) {
    return YES;
  }
  return NO;
}

编辑:虽然如果我是你,我会做的是为坐标属性设置一个自定义转换器,它将读取 2 个传入的 json 键并自动为你生成一个位置结构。只是一个想法...

于 2014-02-21T11:34:46.880 回答