Soleil,
Это довольно просто. Прежде всего, ваша модель должна выглядеть следующим образом (для простоты я пропустил атрибуты).
В этом случае Tree
может иметь нуль или более Fruit
сек (см fruits
отношения). Напротив, Fruit
имеет отношение tree
(обратное отношение).
В частности, fruits
отношение должно выглядеть следующим образом
Здесь вы можете увидеть, что отношения ко многим были установлены. Правило Удалить означает, что если вы удалите дерево, его плоды будут удалены.
tree
отношения как следующий
Это отношения один-к-одному, так как плод может существовать только тогда, когда присоединен к дереву. Дополнительно флаг не задан. Итак, когда вы создаете плод, вам также нужно указать его родителя (в этом случае дерево). Правило Nullify означает, что при удалении плода Core Data не удаляет дерево, связанное с этим фруктом. Он удалит только указанные вами фрукты.
При создании Fruit
сущности, вы должны следовать тем же путем
NSManagedObject *specificFruit = [NSEntityDescription insertNewObjectForEntityForName:@"Fruit" inManagedObjectContext:context];
[specificFruit setValue:parentTree forKey:@"tree"];
или если у вас есть создать NSManagedObject
подклассы:
Fruit *specificFruit = [NSEntityDescription insertNewObjectForEntityForName:@"Fruit" inManagedObjectContext:context];
specificFruit.tree = parentTree;
Надежда, что помогает.
P.S. Проверьте код, так как я написал без поддержки Xcode.
Не должно ли дерево иметь отношение ко многим, а не к фруктам? наоборот? – lakesh
@lakesh Возможно, я не объяснил это хорошо, но, как я писал, «Дерево» может иметь ноль или больше фруктов. «Фрукт» связан с одним деревом. Работает ли это для вас? –
Отличный ответ, спасибо.Я многое сделал, но вы заполнили некоторые детали, которые очень помогут. – soleil