Генератор кода для Objective C - PullRequest
3 голосов
/ 17 февраля 2011

Я использую CodeSmith для генерации кода .NET из БД.Существует ли аналогичный инструмент генерации кода для БД SQLite, который генерирует код для target-c?

Ответы [ 4 ]

5 голосов
/ 27 июня 2011

Этот репозиторий на основе Objective-C для SQLite имеет простой bash-скрипт, который будет читать базу данных SQLite и генерировать подходящие модели ORM для вас. URL-адрес https://github.com/ziminji/objective-c-sql-query-builder

Все, что вам нужно сделать, это настроить небольшой файл свойств, который сообщит bash-скрипту, где находится база данных SQLite на вашем жестком диске.

3 голосов
/ 17 февраля 2011

Да. Основные данные . Он встроен, очень быстр, очень хорошо документирован, и есть множество примеров того, как его использовать.

Однако он не генерирует код. Генерация кода вообще ужасна; сгенерированный машиной код часто слишком многословен, плохо отформатирован и сложен в отладке. Хуже того, как только вы отредактируете код, вы не сможете заново сгенерировать без риска конфликта (в лучшем случае).

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

1 голос
/ 17 февраля 2011

Я согласен с тем, что Барри и Ббум сказали о Core Data. Это очень полезно. Однако это не панацея. В некоторых случаях вам может понадобиться доступ к уже существующей базе данных SQLite, и ее перенос в Core Data приведет к полному перерасходу. В этих случаях вам следует использовать оболочку Flying Meat Database , также известную как «FMDB». Это чистый и простой в использовании.

1 голос
/ 17 февраля 2011

Если вы занимаетесь разработкой в ​​стиле кода или модели, то Core Data - безусловно, лучший путь для OS X / iOS. Однако Core Data не является ORM и поэтому не является правильным решением для работы с БД с существующей (не Core Data) схемой. Если это ваша ситуация, динамическая природа Objective-C означает, что генерация кода редко требуется. Реализация шаблона Active Record довольно проста. Взгляните на этот проект для примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...