Работая с проектом xcode с кучей проблем и ТОННАМИ неиспользуемого / ошибочного устаревшего кода - мы недавно приняли решение начать новый проект заново и строить его оттуда. Все намного лучше, но я столкнулся с основной проблемой миграции данных.

Подавляющее большинство этой модели та же самая, с некоторыми изменениями - модель включает только 6 объектов, и есть только один объект, который мне действительно важен, чтобы получить то, что пользователь сохранил, поэтому, когда мы выпускаем его, и они обновляют эти данные. Я создал новую модель в основном с нуля в новом проекте, поэтому я предполагаю, что приложение пытается получить доступ к определенной модели на основе идентификатора или чего-то, что не соответствует?

Есть ли у кого-нибудь идеи относительно потенциального решения?

Приложение вылетает из-за утверждения ниже:

NSPersistentStore *persistentStore = [managedObjectStore addSQLitePersistentStoreAtPath:storePath fromSeedDatabaseAtPath:nil withConfiguration:nil options:options error:&error];

NSAssert(persistentStore, @"Failed to add persistent store with error: %@", error);

Существующее приложение в настоящее время находится на второй версии исходной ModelA, а новое приложение имеет только одну новую свежую ModelA в первой версии. Я предполагаю, что это может иметь какое-то отношение к этому?

1
Mike 18 Апр 2014 в 18:28

2 ответа

Лучший ответ

В конце концов, я выполнил свою собственную тяжелую миграцию. Я добавил старую модель данных в новый проект и выполнил однократную миграцию устаревших объектов в новые объекты, сохранив их в новой базе данных.

0
Mike 13 Май 2014 в 16:38

Я собирался комментировать, но мой ответ был слишком длинным ...

Сначала глупый вопрос ... и я пишу это, никогда не используя RestKit ...

Вопрос первый - стоит ли проверять какие-либо необходимые настройки сборки для RestKit в вашем новом проекте?

Вопрос второй - не следует ли вам включить значение для fromSeedDatabaseAtPath в метод?

В ожидании удовлетворительного ответа на первый вопрос попробуйте это ...

1-й; Закройте новый проект в Xcode. Откройте окно Finder и с помощью Finder скопируйте старый файл .xcdatamodeld из вашего старого проекта в каталог / папку нового проекта и при необходимости переименуйте имя файла.

2-й; Откройте Xcode и в своем новом проекте выберите параметр «Добавить файлы в проект ...» в меню «Файл» и следуйте инструкциям по добавлению старого файла .xcdatamodeld в свой проект.

3-й; В своем коде создайте NSString для представления пути к старому файлу .xcdatamodeld и включите его в свою строку кода после fromSeedDatabaseAtPath: для метода addSQLitePersistentStoreAtPath:fromSeedDatabaseAtPath:withConfiguration:options:error:.

Это помогает?

0
andrewbuilder 21 Апр 2014 в 02:51