0

我的核心数据模型中有一个整数数组。它被设置为可变形的。

我从服务器返回的 JSON 为我提供了以下格式的数字列表:

{ "numbers": [10, 3, 2], "name": "John Smith" }

我配置我的对象映射如下:

[dataMapping mapKeyPath:@"numbers" toAttribute:@"numberList"];
[dataMapping mapKeyPath:@"name" toAttribute:@"fullName"];

fullName 没有问题,它是一个字符串。

但是,加载对象后 numberList 仍然为空(所有常规参数都加载正常)。我在网上四处张望,但不知道要寻找什么。

有任何想法吗?

4

2 回答 2

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
于 2012-06-25T09:07:45.967 回答
0

当我处理 json 时,预期的 keyPath 将类似于您示例中的“data.numbers”。

换句话说,您的 json 结果中的第一项仍然很重要。

于 2012-06-23T00:44:57.220 回答