RestKit 和核心数据整数数组

Posted

技术标签:

【中文标题】RestKit 和核心数据整数数组【英文标题】:RestKit and Core Data array of Integers 【发布时间】:2012-06-22 19:38:22 【问题描述】:

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

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

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

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

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

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

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

有什么想法吗?

【问题讨论】:

【参考方案1】:

这听起来像是您的价值转换器的问题。试试这个,告诉我它是否有效。这是 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

【讨论】:

【参考方案2】:

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

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

【讨论】:

我之前的示例不正确我修复了我的问题以使其更清楚。有什么想法吗? 一个可能的建议:numberList 数组在映射之前可能需要为非零但为空。

以上是关于RestKit 和核心数据整数数组的主要内容,如果未能解决你的问题,请参考以下文章

使用 RestKit 将一个裸露的 URL 数组映射到核心数据实体

RestKit:将单个对象映射到现有数组

iOS RestKit 实体管理器映射对象数组

RestKit 性能和核心数据

Restkit核心数据明细数据

RestKit 和核心数据 - 如何发布数据?