嗨,有人可以教我如何进行嵌套的 Restkit 实体映射吗?我在调试时不断收到错误消息,下面是我的错误消息和代码
[__NSSetM insertObject:atIndex:]
: 无法识别的选择器发送到实例 0x95269d0
json数据
Family =(
{
id = "1";
parentName = "Mr John";
Child =(
{
parentID = "1";
childName = "James";
age = "18";
},
{
parentID = "1";
childName = "ruby";
age = "19";
},
{
parentID = "1";
childName = "ella";
age = "20";
}
);
}
);
我的 AppDelegate.m
RKEntityMapping *familyMapping = [RKEntityMapping mappingForEntityForName:@"Family" inManagedObjectStore:managedObjectStore];
debtorMapping.identificationAttributes = @[ @"id" ];
[familyMapping addAttributeMappingsFromDictionary:@{
@"id": @"accNo",
@"parentName": @"companyName"
}];
RKEntityMapping *childMapping = [RKEntityMapping mappingForEntityForName:@"Child" inManagedObjectStore:managedObjectStore];
childMapping.identificationAttributes = @[ @"parentID"];
[childMapping addAttributeMappingsFromDictionary:@{
@"parentID": @"parentID",
@"childName": @"childName",
@"age": @"age"
}];
[familyMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"Child" toKeyPath:@"Child" withMapping:childMapping]];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:familyMapping
pathPattern:nil
keyPath:@"Family"
statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[objectManager addResponseDescriptor:responseDescriptor];
家庭 NSManagedObject
@class Child;
@interface Family : NSManagedObject
@property (nonatomic, retain) NSString * id;
@property (nonatomic, retain) NSString * parentName;
@property (nonatomic, retain) NSSet *child;
@end
@interface Family (CoreDataGeneratedAccessors)
- (void)addChildObject:(Child *)value;
- (void)removeChildObject:(Child *)value;
- (void)addChild:(NSSet *)values;
- (void)removeChild:(NSSet *)values;
@end
子 NSManageObject
@class Family;
@interface Child : NSManagedObject
@property (nonatomic, retain) NSString * parentID;
@property (nonatomic, retain) NSString * childName;
@property (nonatomic, retain) NSString * age;
@property (nonatomic, retain) Family *family;
@end