发布不使用Restkit的对象数组

时间:2014-06-21 17:48:38

标签: ios restkit

我有以下两个实体

@interface MEContactInfo : NSObject
@property (nonatomic,strong) NSString* phone ;
@property (nonatomic,strong) NSString* email;
@end

@interface MEContact : NSObject
@property (nonatomic,strong) NSString* _id ;
@property (nonatomic,strong) NSString* lastName;
@property (nonatomic,strong) NSString* firstName;
@property (nonatomic,strong) NSString* data ;
@property (nonatomic,strong) NSMutableArray* contactInfos ;
@end

第二个实体联系人包含联系人信息数组。现在我想将此发布到我的服务器,但我无法这样做。我的映射如下:

RKObjectMapping* contactMapping = [RKObjectMapping mappingForClass:[MEContact class]];
[contactMapping addAttributeMappingsFromArray:@[@"_id",@"lastName",@"firstName",@"data"]];

RKObjectMapping* contactInfosMapping = [RKObjectMapping mappingForClass:[MEContactInfo class]];
[contactInfosMapping addAttributeMappingsFromArray:@[@"email",@"phone"]];
[contactMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"contactInfos" toKeyPath:@"contactInfos" withMapping:contactInfosMapping]];

我的请求描述符如下:

requestDescriptor = [RKRequestDescriptor 
requestDescriptorWithMapping:[contactMapping inverseMapping]    
objectClass: [MEContact class]  
rootKeyPath:nil method:RKRequestMethodAny];                             

现在当我发布这样的内容时:

  

{firstName:“abc”,         名字:” XYZ”,       contactInfos:[{           电子邮件:” test@test.com”           电话:” 9999999999”       }]   }

我收到了

  

{       姓:” ABC”,       名字:” XYZ”,       contactInfos:[“test@test.com”,“9999999999”]   }

如果我在contactInfos数组中有多个条目,它们都会附加到我在服务器端收到的contactInfos数组中。基本上,contactInfo对象在数组中展平。能告诉我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。以上所有内容都是正确的。问题是数据不是作为服务器的JSON。解决方案是我必须设置请求序列化MimeType,这可以通过执行此操作来完成

[objectManger setRequestSerializationMIMEType:RKMIMETypeJSON];

由于