ブール値である属性に対して true/false の代わりに null を持つことがあるサービスから戻ってくる JSON があります。このような:
"hide_locations" : null,
この値を受け取るオブジェクトには、次のプロパティがあります。
@property (nonatomic, assign) BOOL hideLocations;
私のマッピングは次のように構成されています。
RKObjectMapping *retVal = [RKObjectMapping mappingForClass:[self class]];
[retVal mapKeyPath:@"hide_locations" toAttribute:@"hideLocations"];
しかし、マッピングを実行すると、RestKit 0.10.3 が次の行でクラッシュします。
[self.destinationObject setValue:value forKeyPath:attributeMapping.destinationKeyPath];
in - (void)applyAttributeMapping:(RKObjectAttributeMapping *)attributeMapping withValue:(id)value
RKObjectMappingOperation.m で次のエラーが発生しました:
2012-11-13 09:33:04.352 テスト [73816:5f03] *キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '[ setNilValueForKey]: キー hideLocations の値として nil を設定できませんでした。'
このような成熟したフレームワークがこの状況をより適切に処理しないことは、私には非常に奇妙に思えます。ご意見をいただければ幸いです。