我使用Mantle来解析一些通常看起来像这样的
JSON:
"fields": { "foobar": 41 }
但是有时foobar的值为null:
"fields": { "foobar": null }
这导致MTLValidateAndSetValue抛出异常,因为它试图通过键值编码设置一个零值.
我想做的是检测这个空值的存在并将其替换为-1.
我尝试在我的MTLModel子类中覆盖foobarJSONTransformer,如下所示:
+ (NSValueTransformer *)foobarJSONTransformer { return [MTLValueTransformer transformerWithBlock:^id(id inObj) { if (inObj == [NSNull null]) { return [NSNumber numberWithInteger: -1]; } else { return inObj; } }];
…和我可以看到这个代码被调用,但是在Obj永远不等于[NSNull null],因此替换不会发生,异常仍然被Mantle抛出.
什么是正确的方式来捕获这个JSON null的情况,并做替换?