Переименование классов CoreData с возможностью обновления приложений - PullRequest
1 голос
/ 21 июня 2011

Я допустил ошибку при запуске приложения iPhone для кодирования, не добавив префикс к моим именам классов, и, как таковой, возник конфликт (класс CoreData под названием Category).Сборка проекта нормально работала до недавнего обновления XCode, и только теперь я осознаю ошибку.

Можно ли переименовать классы CoreData, сохраняя работающую систему после обновления?Если я добавлю новую версию в Datamodel и переименую класс, приложение обновится, но кажется, что старая таблица удалена, а новая (пустая) создана.Очевидно, что все ссылки впоследствии не работают.Я хотел бы сохранить данные во время внесения изменений.

В Java EE вы можете отменить имя таблицы, если я правильно помню, и поэтому я мог бы использовать старое имя класса для именования таблицы.Есть ли такая возможность с CoreData?

Заранее спасибо!Я должен найти способ обновить БД без всех приложений в поле разрыва.

1 Ответ

3 голосов
/ 21 июня 2011

На самом деле, это хорошо документировано Apple:

Если вы переименуете сущность или свойство, вы можете установить идентификатор переименования в целевой модели на имя соответствующего свойства или сущности висходная модель.Обычно вы устанавливаете идентификатор переименования с помощью инструмента Xcode Data Modeling (для объекта NSEntityDescription или NSPropertyDescription).В Xcode идентификатор переименования находится на панели «Сведения о пользователе» панели сведений под модификатором хэша версии (см. «Просмотр браузера» в «Инструменты XCode для основных данных»).( Библиотека разработчика Mac OS X )

Но на самом деле мне кажется, что мне нужно просто изменить имя класса и оставить остальную часть модели в покое.

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