ManagedObjectModel принимает значение nil - PullRequest
2 голосов
/ 29 января 2012

Просто создайте новое приложение для iPhone с CoreData.Мое приложение создается без каких-либо предупреждений или ошибок, и в нем также есть мой .xcdatamodeld, в котором нет ошибок или предупреждений.

По какой-то причине мой managedObjectModel не инициализируется, и я не могу понять почему.*

- (NSManagedObjectModel *)managedObjectModel {
 if (__managedObjectModel) {
     return __managedObjectModel;
}

 NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"BAK" withExtension:@"momd"];
 __managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];    
 return __managedObjectModel;
}

modelURL разрешается правильно и указывает на мою скомпилированную модель данных, но managedObjectModel остается равным nil после своей строки alloc.Нет вывода в консоль либо.Что может быть причиной этого или чего мне не хватает?

__managedObjectModel объявлен следующим образом:

.h
@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;
.m
@synthesize managedObjectModel = __managedObjectModel;

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 29 января 2012

Могу поспорить, что вы как-то изменили модель, скорее всего, имя («BAK» на что-то другое или что-то еще на «BAK»).

Эта инициализация NSManagedObjectModel действительно проста.Если он был инициализирован и существует, верните его, в противном случае инициализируйте ManagedObjectModel, используя предоставленное вами имя («BAK»).

Единственное другое объяснение состоит в том, что каким-то образом модель Core Data не получилаинициализируется в основном месте расположения пакета, но где-то еще.

...