Хотя на практике можно создать новую сущность и новую модель на лету, это чрезвычайно сложно.В противном случае вам придется перенести все существующие постоянные данные в новую модель и новый файл постоянного хранения.Я настоятельно рекомендую не пытаться делать это, особенно если вы только начинаете использовать Core Data.
У вас есть варианты:
Во-первых, вы уверены, что вам действительно нужен новый объект?Люди, начинающие с Core Data, часто ошибочно принимают сущности за управляемые объекты.Объекты относятся к управляемым объектам, а классы - к экземплярам.Объекты - это абстракции, используемые для создания графа объектов.Они на самом деле не содержат данных.Времена, когда вам нужны новые сущности, очень и очень редки.
Во-вторых, если вам нужен какой-то динамический объект, обычно лучше разложить динамический объект на многочисленные фиксированные объекты, а затем использовать отношения для создания виртуального объекта.Например, вам нужна динамическая личность «сущность», поэтому вы создаете в модели несколько сущностей, каждая из которых содержит один атрибут личности.У вас может быть объект Field
, который будет иметь атрибут fieldName
, а затем атрибут fieldValue
.Затем имейте фактическую сущность Person
, у которой нет атрибутов, а есть только отношения с необходимыми Field
объектамиВы можете добавить любые поля, необходимые любому человеку, а затем воссоздать объект виртуального человека, пройдя отношения к его полям.
Я скорее сомневаюсь, что вам нужна такая гибкость.Такая необходимость очень редка.Я бы сделал шаг назад и увидел бы, какие именно динамические данные, по вашему мнению, могут понадобиться пользователю.