diff --git a/Classes/JSONAPI.m b/Classes/JSONAPI.m index 6026dc1..cd6d7b7 100644 --- a/Classes/JSONAPI.m +++ b/Classes/JSONAPI.m @@ -117,6 +117,16 @@ - (void)inflateWithDictionary:(NSDictionary*)dictionary { // Parses included resources id included = dictionary[@"included"]; NSMutableDictionary *includedResources = [[NSMutableDictionary alloc] init]; + // Adding the resources to the included attribute + for (NSObject *resource in _resources) { + JSONAPIResourceDescriptor *desc = [resource.class descriptor]; + + NSMutableDictionary *typeDict = includedResources[desc.type] ?: @{}.mutableCopy; + typeDict[resource.ID] = resource; + + includedResources[desc.type] = typeDict; + } + if ([included isKindOfClass:[NSArray class]] == YES) { for (NSDictionary *data in included) { diff --git a/Classes/JSONAPIResourceParser.m b/Classes/JSONAPIResourceParser.m index be4c087..9bd597e 100644 --- a/Classes/JSONAPIResourceParser.m +++ b/Classes/JSONAPIResourceParser.m @@ -347,7 +347,7 @@ + (NSArray*)relatedResourcesFor:(NSObject *)resource { id value = [resource valueForKey:key]; if ([value isKindOfClass:[NSArray class]]) { [related addObjectsFromArray:value]; - } else { + } else if (value) { [related addObject:value]; } }