Да. Основные данные . Он встроен, очень быстр, очень хорошо документирован, и есть множество примеров того, как его использовать.
Однако он не генерирует код. Генерация кода вообще ужасна; сгенерированный машиной код часто слишком многословен, плохо отформатирован и сложен в отладке. Хуже того, как только вы отредактируете код, вы не сможете заново сгенерировать без риска конфликта (в лучшем случае).
Базовые данные, такие как Interface Builder, используют подход, согласно которому вы должны иметь возможность моделировать немного функциональности в том, что архивируется во время компиляции и не архивируется во время выполнения. Еще лучше то, что аспекты моделирования как IB, так и Core Data не делают ничего , что нельзя сделать в коде, если вы действительно этого хотите. То есть магии нет.