2013-02-01 3 views
2

Я продлил вчера свой класс «Пользователь», который является подклассом NSManagedObject. Я добавил новое свойство с именем «photoPath», как обычно:NSManagedObject @dynamic свойство больше не распознается

@property (nonatomic, retain) NSString * photopath; 
@dynamic photoPath; 

я добавил новую версию моей модели данных и успешно реализован перенос данных. Все сработало отлично! ... с тех пор. Сегодня, когда доступ к моему новому свойству, то приложение падает и говорит:

-[User photoPath]: unrecognized selector sent to instance xxx 

код не был затронут, так как вчера, я только закрыл и снова открыл Xcode.

Так что же может быть волшебством f ***, которое заставляет приложение работать днем ​​и разбиваться на следующий день? Я знаю, что CoreData генерирует некоторые файлы, такие как .momd. Я все убрал. Любое предложение?

Кажется, что CoreData остается на старой объектной модели, и я не знаю, почему .....

EDIT:

Когда я проверяю Project.sqlite файл, столбец «photoPath» даже не существуют. Есть идеи?

+1

Убедитесь, что значение «Текущее» в «Версии Core Data Model» - это новая версия, которую вы создали. – ChrisH

+0

Да, это хорошо, конечно ... спасибо – Martin

ответ

1

ХОРОШО

Конечно, под моим .xdatamodeld (версированное Ядро модели данных) был выбран хороший вариант, я тройной проверил, что перед публикацией.

Но я по-прежнему пытался выбрать старый, сохранить, переустановить новый, сохранить.

И это работает ...

Много, много благодаря Xcode, которые заставили меня потерять 2 часа

EDIT: Проблема возвращается каждый раз, когда я закрываю и вновь открыть свой проект. Я всегда должен выполнить описанную выше процедуру перед запуском приложения. Это очень раздражает. Если кто-то знает, как лучшее решение, я бы принял его ответ.

+0

Простой, но эффективный. Придется также очистить и очистить папку. – imnk

1

Две вещи, которые я всегда делаю после изменения базовой модели данных или подкласса. Удалите экземпляр приложения с устройства/симулятора. Очистите проект.

+0

Убирали, как я уже сказал. Но я не согласен с удалением экземпляра с устройства/симулятора. Обновление appstore должно работать, поэтому миграция данных тоже. – Martin

+0

И удалив старое приложение, тот же pb происходит ... ах, я не пытался перезагрузиться! давай сделаем это. – Martin

Смежные вопросы