2011-12-28 144 views
2

我想通过使用RestKit从我的自定义对象中获取JSON格式字符串。RestKit:serializedObjectForMIMEType失败,错误

这里是我的代码:

@interface MyPhoneModel : NSObject 

@property (nonatomic, copy) NSString *number; 
@property (nonatomic, copy) NSString *tag; 

@end 

@interface MyContactModel : NSObject 

@property (nonatomic, copy) NSString *name; 
@property (nonatomic, copy) NSArray *phoneList; 

@end 

- (NSString *)jsonString:(MyContactModel *)contact 
{ 
    RKObjectMapping *phoneMapping = [RKObjectMapping mappingForClass:[MyPhoneModel class]]; 
    [phoneMapping mapKeyPath:@"number" toAttribute:@"number"]; 
    [phoneMapping mapKeyPath:@"tag" toAttribute:@"tag"]; 

    RKObjectMapping *contactMapping = [RKObjectMapping mappingForClass:[MyContactModel class]]; 
    [contactMapping mapKeyPath:@"name" toAttribute:@"name"]; 
    [contactMapping mapKeyPath:@"phoneList" toRelationship:@"phoneList" withMapping:phoneMapping]; 

    NSError *error = nil; 
    NSString *json = [[RKObjectSerializer serializerWithObject:contact mapping:contactMapping] serializedObjectForMIMEType:RKMIMETypeJSON error:&error]; 
    return json; 
} 

但是,当我把这种方法,它与错误而失败。 错误域= JKErrorDomain代码= -1“无法序列化对象类MyPhoneModel”。 UserInfo = 0x898c400 {NSLocalizedDescription =无法序列化对象类MyPhoneModel。

那么,如何解决这个问题呢?

回答

1

我发现这个链接: Examples of using

在每一个例子,我能找到的映射与[NSDictionary的类]或[的NSMutableDictionary类]

所以,也许这样做:

RKObjectMapping* phoneMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class] ]; 
[phoneMapping mapAttributes:@"number", @"tag", nil]; 

RKObjectMapping *contactMapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]]; 
[contactMapping mapKeyPath:@"name" toAttribute:@"name"]; 
[contactMapping mapKeyPath:@"phoneList" toRelationship:@"phoneList" withMapping:phoneMapping]; 

你想要这个序列化的字符串与RKClient一起使用吗?

+0

谢谢,这就是我想要的! – wjldxt 2011-12-29 06:36:38