2013-05-17 1 views
0

Я создал новую версию моей модели управляемых объектов (новый файл xcdatamodel), обновил xcdatamodeld, чтобы новая версия была «текущей», и добавила атрибут (hasStartWithFlow) к сущности (Цикл). hasStartWithFlow имеет значение Boolean, а не Optional, Default = NO. Я обновил Cycle.h иметьЕд. Тесты не видят новую версию модели управляемых объектов

@property (nonatomic) BOOL hasStartWithFlow; 

и Cycle.m иметь

@dynamic startsWithFlow; 

Я экземпляр нового постоянного хранилища файлов (SQLite) в коде модульного тестирования, а затем попытаться установить новое значение:

cycle.startsWithFlow = true; 

Я получаю ошибку -[Cycle setStartsWithFlow:]: unrecognized selector sent to instance 0x192ebf0. Если я нарушу выполнение единичного теста и рассмотрю [NSEntityDescription entityForName:@"Cycle" inManagedObjectContext:context], я вижу, что он не включает мой новый атрибут.

Что мне не хватает?

+0

Hm. ./Xcode/DerivedData/ /Build/Products/Debug-iphonesimulator/AppNameLogicTests.octest/DataModel.momd/VersionInfo.plist по-прежнему имеет NSManagedObjectModel_CurrentVersionName, указывающее на старую версию, хотя он говорит, что файл был обновлен, когда я сделал свою последнюю сборку , Удаление каталога DataModel.momd в октетном пакете приводит только к воссозданию неправильного значения. Гектометр –

+0

Похоже, что когда вы обновили модель, вы только обновили настройки для своей главной цели приложения, а не для целевой тестовой единицы. –

+0

Как я мог это сделать? Существует один исходный файл xcdatamodeld с целевым членством, проверенный для обеих целей. Я вижу только одно место для установки currentVersion (в разделе «Модель данных с версией ядра» в Инспекторе файлов). –

ответ

0

Я не уверен, что это действительно объясняет, что было не так, но перезапуск Xcode решил мою проблему.

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