2014-02-16 3 views
0

Почему у моего NSManagedDataModel нет объектов после добавления другой версии DataModel?Почему у моего NSManagedDataModel нет объектов после добавления другой версии DataModel?

MacBook Pro Late 2008, OS X 10.8.5, Xcode 5.0.2, Проект имеет два приложения, один OS X, один IOS, как разделить DataModel Недавно добавить новый DataModel Версия DataModel включает в себя четыре подклассов NSManagedObject. Каждый из четырех классов получил два идентичных изменения, а именно: : добавление двух атрибутов: изменено NSDate uid NSString Я не выбрал вариант: используйте скалярные свойства для примитивных типов данных при генерации файлов четырех классов.

Когда следующие четыре строки выполняются в OS X приложение,

NSString *path = [[NSBundle mainBundle] pathForResource:@"SqliteFromXml" ofType:@"momd"]; 
NSURL *momdURL = [NSURL fileURLWithPath:path]; 
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momdURL]; 

NSLog(@"path=%@\nDataModel=%@\nEntities in DM=%@",path,managedObjectModel,[managedObjectModel entities]); 

Это выход:

path=/Users/appleuser/SqliteFromXml/Debug/SqliteFromXml.app/Contents/Resources/SqliteFromXml.momd 

DataModel=(<NSManagedObjectModel: 0x1001d1b80>) isEditable 0, entities { 
}, fetch request templates { 
} 

Entities in DM=() 

momd пучок создается при каждом запуске, но имеет 0 объектов ,

The .app пачка Содержание выглядит следующим образом:

https://www.dropbox.com/s/68iy8gjqbv0m0tq/Screenshot%202014-02-16%2018.03.02.png

Большого спасибо, Марк

ответ

0

DataModel имя пакет: IHM_Recipes.xcdatamodeld (разработано как часть оригинального приложение IOS) Есть два продукта, совместно использующих общий датамодель: iHungryMePlus (iOS) SqliteFromXml (Mac)

Был пользователь ROR в мой выбор параметров для pathForResource: для первой строки кода ниже:

NSString *path = [[NSBundle mainBundle] pathForResource:@"IHM_Recipes" ofType:@"momd"]; 
NSURL *momdURL = [NSURL fileURLWithPath:path]; 
managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:momdURL]; 

Я использовал pathForResourceParam == @ "SqliteFromXml". Жаль тратить свое время. Поскольку был создан файл momd с именем SqliteFromXml.momd, я ошибочно сделал вывод, что pathForResourceParam был , используемый для таргетинга, а не поиска. Теперь я вижу, что это была очень плохая логика. Этот подход для создания MOM был получен от Джеффа Ламарче.