我需要有一个JSON中不存在的属性,但是当我尝试使用这个Model对象时需要设置它。我认为向你展示这个例子会更容易......
以下是我的示例JSON:
[{
"name" : "Safari",
"key" : "safari",
"app_url_scheme" : "http://www.twitter.com",
"actions" :
[{
"key" : "show_profile",
"url_format" : "http://www.twitter.com/{{profile_screenname}}"
}]
}
]
JSONKeyPathsByPropertyKey
方法如下所示:
+ (NSDictionary *)JSONKeyPathsByPropertyKey
{
return @{
@"appName" : @"name",
@"appKey" : @"key",
@"appURLScheme" : @"app_url_scheme",
@"appActions" : @"actions",
@"isInstalled" : NSNull.null
};
}
所以,正如你所看到的那样,isInstalled
方法在映射过程中应该被忽略(因为在JSON中没有像这样的字段),但是我需要尽快设置这个属性对象已完全映射。更重要的是我需要根据JSON中提供的其他属性来设置它。如何实现这一目标?
我找到了像this这样的解决方案:
@"videoType" : @"@Selector(videoTypeFromString:, type)",
//! implemented on instance you are parsing
- (NSUInteger)videoTypeFromString:(NSString *)type
{
if ([type isEqualToString:@"shortVideo"]) {
return VideoTypeShort;
}
return VideoTypeLong;
}
但是@selector
从未被调用过......