我的核心数据模型中有一个整数数组。它被设置为Transformable。
我从服务器返回的JSON以下列格式给出了这个数字列表:
{ "numbers": [10, 3, 2], "name": "John Smith" }
我按如下方式配置对象映射:
[dataMapping mapKeyPath:@"numbers" toAttribute:@"numberList"];
[dataMapping mapKeyPath:@"name" toAttribute:@"fullName"];
fullName是一个字符串没问题。
但是,在加载对象后,numberList保持为null(所有常规参数都可以正常加载)。我在网上环顾四周,但不知道该找什么。
有什么想法吗?
答案 0 :(得分:2)
这听起来像是你的价值转换器的问题。试试这个并告诉我它是否有效。这是ARC代码。
·H
@interface NSArrayValueTransformer : NSValueTransformer
@end
的.m
#import "NSArrayValueTransformer.h"
@implementation NSArrayValueTransformer
+ (BOOL) allowsReverseTransformation {
return YES;
}
+ (Class) transformedValueClass {
return [NSData class];
}
- (id) transformedValue:(id)value {
if( !value )
return nil;
if( [value isKindOfClass: [NSData class]] )
return value;
return [NSKeyedArchiver archivedDataWithRootObject: value];
}
- (id) reverseTransformedValue:(id)value {
return [[NSKeyedUnarchiver unarchiveObjectWithData: value] mutableCopy];
}
@end
答案 1 :(得分:0)
当我处理了json时,预期的keyPath就像你的例子中的“data.numbers”。
换句话说,json结果中的第一项仍然很重要。