【发布时间】:2014-01-08 08:48:11
【问题描述】:
我正在使用 Mantle 解析一些通常如下所示的 JSON:
"fields": {
"foobar": 41
}
但有时 foobar 的值为 null:
"fields": {
"foobar": null
}
这会导致 MTLValidateAndSetValue 在尝试通过键值编码设置 nil 值时抛出异常。
我想做的是检测这个空值的存在并将其替换为 -1。
我尝试在我的MTLModel 子类中覆盖foobarJSONTransformer,如下所示:
+ (NSValueTransformer *)foobarJSONTransformer {
return [MTLValueTransformer transformerWithBlock:^id(id inObj) {
if (inObj == [NSNull null]) {
return [NSNumber numberWithInteger: -1];
} else {
return inObj;
}
}];
...我可以看到这段代码被调用了,但是 inObj 永远不等于[NSNull null],因此不会发生替换,并且异常仍然被 Mantle 抛出。
捕获这个 JSON null 情况并进行替换的正确方法是什么?
【问题讨论】:
标签: ios json github-mantle