0

コア データ モデルに整数の配列があります。Transformable として設定されます。

サーバーから返された JSON には、次の形式の数値のリストが表示されます。

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

オブジェクト マッピングを次のように構成します。

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

String である fullName で問題ありません。

ただし、オブジェクトがロードされた後も、numberList は null のままです (すべての通常のパラメータは正常にロードされます)。Web でいろいろ調べたのですが、何を調べればいいのかわかりません。

何か案は?

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 に答える