Ignore empty arrays in mapping with Restkit

I have the following JSON:

"Menus":{
"Id" : "3",
"Name" : "Cheese Burger",
"Items": []
}

I map the response to Core Data like so:

+ (RKEntityMapping *)menuMapping {
    RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:@"Menu" inManagedObjectStore:[[CoreDataManager sharedInstance] objectStore]];

    mapping.assignsNilForMissingRelationships = YES;
    mapping.assignsDefaultValueForMissingAttributes = YES;

    [mapping addAttributeMappingsFromDictionary:@{
                                                  @"Id": @"remoteID",
                                                  @"Name": @"name",
                                                  }];


    mapping.identificationAttributes = @[ @"remoteID" ];

    [mapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"Items"
                                                                                   toKeyPath:@"products"
                                                                                 withMapping:[MappingProvider productMapping]]];

    return mapping;
}

+ (RKEntityMapping *)productMapping {
    RKEntityMapping *mapping = [RKEntityMapping mappingForEntityForName:@"Product" inManagedObjectStore:[[CoreDataManager sharedInstance] objectStore]];

    mapping.assignsNilForMissingRelationships = YES;

    [mapping addAttributeMappingsFromDictionary:@{
                                                  @"Id": @"remoteID",
                                                  @"Name": @"name",
                                                  @"Description" : @"info",
                                                  @"Price": @"price"
                                                  }];


    mapping.identificationAttributes = @[ @"remoteID" ];




    return mapping;
}

How would I manage to validate if the Items array is empty or not, and create the Menu object in Core Data based on if the Items (the products) contains values? I have tried using the assignsNilForMissingRelationships but it does not seem to work in this case.

Upvotes: 0

Views: 401

Answers (1)

Wain
Wain

Reputation: 119031

Use KVC validation to analyse the incoming value and (modify or) reject it.

Upvotes: 2

Related Questions