diff --git a/Code/ObjectMapping/RKObjectMappingOperation.m b/Code/ObjectMapping/RKObjectMappingOperation.m index 8135d0f150..aaff77eadf 100644 --- a/Code/ObjectMapping/RKObjectMappingOperation.m +++ b/Code/ObjectMapping/RKObjectMappingOperation.m @@ -160,11 +160,20 @@ - (id)transformValue:(id)value atKeyPath:keyPath toType:(Class)destinationType { if ([destinationType isSubclassOfClass:[NSArray class]]) { return [(NSSet*)value allObjects]; } + } else if ([sourceType isSubclassOfClass:[NSOrderedSet class]]) { + // OrderedSet -> Array + if ([destinationType isSubclassOfClass:[NSArray class]]) { + return [(NSOrderedSet*)value array]; + } } else if ([sourceType isSubclassOfClass:[NSArray class]]) { // Array -> Set if ([destinationType isSubclassOfClass:[NSSet class]]) { return [NSSet setWithArray:value]; } + // Array -> OrderedSet + if ([destinationType isSubclassOfClass:[NSOrderedSet class]]) { + return [NSOrderedSet orderedSetWithArray:value]; + } } else if ([sourceType isSubclassOfClass:[NSNumber class]] && [destinationType isSubclassOfClass:[NSDate class]]) { // Number -> Date return [NSDate dateWithTimeIntervalSince1970:[(NSNumber*)value intValue]];