Я переработал базовую модель данных для своего приложения, за пределами того места, где будет работать легкая миграция. Итак, теперь у меня есть две основные модели данных в комплекте приложений, и мне нужно получить доступ к каждому отдельно (для обычной настройки данных ядра и для ручной миграции), что означает, что [NSManagedObjectModel mergedModelFromBundles:nil]
не подходит/не работает. Проблема в том, что я не могу получить URL-адрес для любой модели, что мешает мне создавать их с помощью [NSManagedObjectModel alloc] initWithContentsOfURL:
. Эти методы я использую, и они оба возврат NULL:URL-адрес NSManagedObjectModel равен NULL
- (NSURL *)currentModelURL{
return [[NSBundle mainBundle] URLForResource:@"NewModel" withExtension:@"momd"];
}
- (NSURL *)oldModelURL{
return [[NSBundle mainBundle] URLForResource:@"OldModel" withExtension:@"momd"];
}
В самом деле, когда я попробовать этот метод на других приложениях, даже те, с одной моделью, она никогда не возвращает модель URL. Это странно, так как предыдущая версия моего приложения просто прекратилась, получив модель через URL-адрес, используя метод выше ... не на [NSManagedObjectModel mergedModelFromBundles]
.
Я прочитал this и this и попробовал предлагаемые решения, которые включают в себя обеспечение модели будут добавлены в список ресурсов для копирования расслоения в фазе сборки, проверками регистрозависимых имен файлов, и суетливость с расширениями файлов в методе URLForResource
. Я полагаю, что я мог бы представить совершенно новую модель в качестве новой версии старой и просто предотвратить автоматическую миграцию в постоянных параметрах хранилища ... но мой подход должен работать. Почему вдруг невозможно получить URL-адреса для моделей в комплекте приложений?
Ваша информация противоречит. «Я пробую этот метод в других приложениях, даже с одной моделью, он НИКОГДА не возвращает URL-адрес модели« против »предыдущей версии моего приложения, просто отлично, получив модель через URL-адрес, используя метод выше». Возможно, добавьте ссылку github в проект минимального примера, показывая проблему. – shallowThought