Как я могу настроить NSdictionary, используя Mantle?

У меня есть следующая строка JSON:

{"suit_id": 2427;
"suits": "http://img.prettyyes.com/1137-4930-1446175512.jpeg;http://img.prettyyes.com/1137-7665-1446175512.jpeg;http://img.prettyyes.com/1137-4783-1446175512.jpeg"}

Так что, когда используйте мантию для анализа строки JSON со следующим файлом

testModel.h

@interface testModel : MTLModel <MTLJSONSerializing>
@property (nonatomic, strong) NSString *suit_id;
@property (nonatomic, strong) NSString *suits;
@end

testModel.m

@implementation testModel
+ (NSDictionary *) JSONKeyPathsByPropertyKey {
    return @{
            "suit_id":   "suit_id",
            "suits":     "suits"
            };
}
@end

Как бы то ни было, я хотел бы преобразовать костюмы из строки в NSArray с несколькими URL, поэтому я сделал следующее:

testModel.h

@interface testModel : MTLModel <MTLJSONSerializing>
@property (nonatomic, strong) NSString *suit_id;
@property (nonatomic, strong) NSArray *suits;
@end

testModel.m

@implementation testModel
+ (NSDictionary *) JSONKeyPathsByPropertyKey {
    return @{
            "suit_id":   "suit_id",
            "suits":     "suits"
            };
}

+ (NSValueTransformer *) suitsJSONTransform {
    return [MTLValueTransformer transformerUsingForwardBlock:^(NSString *str, BOOL *success, NSError **error){
        return [[str componentsSeparatedByString:@";"] mutableCopy];
    }];
}
@end

Но это не работает. Результат ноль. Когда я переопределяю неправильную функцию?

1 ответ

Метод, возвращающий NSValueTransformer за suits должен быть назван suitsJSONTransformerне suitsJSONTransform,

Формат имени метода <propertyName>JSONTransformer,

Другие вопросы по тегам