Вам необходим объект для Type
, который будет иметь атрибуты a
и b
и отношение c
(нижний регистр для соответствия соглашениям о присвоении имен). c
- это отношение 1 ко многим к сущности Subtype
. Объект Subtype имеет три атрибута, по одному для каждого из ключей словаря, и отношение type
, которое является обратным отношением для Type
объекта c
.
Используйте следующий псевдокод (я не могу быть обеспокоен деталями настройки основных данных. Вы можете легко прочитать документы ), чтобы помочь вам создать решение для заполнения вашей модели из исходного массива. словарей.
for (NSDictionary* aType in typeArray)
{
// Create a managed object for the dictionary called aTypeManagedObject
[aTypeManagedObject setValue: [aType objectForKey: @"A"] forKey: @"a"];
[aTypeManagedObject setValue: [aType objectForKey: @"B"] forKey: @"b"];
for (NSDictionary* subType in [aType objectForKey: @"C"])
{
// Create a managed object for the dictionary called aSubtypeManagedObject
// set the attributes in the same way as a and b above
[aSubTypeManagedObject setValue: aType forKey: @"type"]; // Automatically updates the aType's c relationship
}
}
// Save all the changes
В следующий раз, когда вы получите управляемый объект Type из основного хранилища данных, все это уже будет настроено.
[aTypeManagedObject valueForKey: @"c"]
вернет массив объектов подтипа для этого объекта Type.