Ответ 1
У меня была такая же проблема после того, как я переименовал файл .xcdatamodeld. Проблема была решена путем закрытия и повторного открытия клиента Xcode.
моя NSManagedObjectModel возвращает нуль, хотя путь правильный.
NSString *modelKey = [NSString stringWithFormat:@"/%@/Model", name];
NSString *modelPath = [((Configuration *)[Configuration shared]) stringEntry:modelKey];
NSURL *modelURL = nil;
if ( ! [modelPath contains:@"://"] ) {
modelPath = PathForBundleResource( modelPath );
modelURL = [NSURL fileURLWithPath:modelPath];
}
NSManagedObjectModel *m = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSString * PathForBundleResource (NSString * relativePath)
NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
return [resourcePath stringByAppendingPathComponent:relativePath];
У меня reset симулятор, сделал чистую сборку, но ничего не помогло.
Я новичок в программировании iPhone (в частности, основные данные).
Поблагодарили бы за любую помощь.
Изменить: я редактировал исходное сообщение относительно файла xcdatamodeld. Первоначально он не был связан правильно, но теперь он имеет и по-прежнему имеет ту же проблему.
Изменить 2: По-видимому, имя xcdatamodel имело некоторые изменения в имени xcdatamodel после привязки. Он работает сейчас. Чувство такого глупого. Не знаю, как удалить этот вопрос.
У меня была такая же проблема после того, как я переименовал файл .xcdatamodeld. Проблема была решена путем закрытия и повторного открытия клиента Xcode.
Я просто столкнулся с этой проблемой после изменения случая имени файла .xcdatamodeld(например, refactored "mydatastore.xcdatamodeld" на "MyDatastore.xcdatamodeld" ) в файловой системе без регистра.
Исправление включает оба вышеупомянутых ответа:
Рефакторинг файла модели данных на совершенно другое имя, например. "MyDatastoreTemporary.xcdatamodeld"
Продукт > Очистка
Закрыть XCode. Повторно откройте XCode и проект.
Рефакторинг файла модели данных возвращается к его окончательному имени, например. "MyDatastore.xcdatamodeld"
Продукт > Очистка
Закрыть XCode. Повторно откройте XCode и проект.
Я попробовал оба вышеупомянутых ответа, однако для меня исправлено удаление и повторное добавление файла .xcdatamodeld
из/в проект Xcode. Очистка не требовалась. По какой-то причине добавление его обратно, похоже, устраняет проблему.
Самый безопасный способ, если вы еще не выполнили версию вашей модели, заключается в следующем.
contents
. Скопируйте этот файл в одно и то же место под вашим новым именем .xcdatamodeld/?. xcdatamodel.Это работает с базовыми моделями, которые не имеют версий.
Я решил, что проблема переделана для удаления модели .xcdatamodeld, а затем добавила ее еще раз.
Когда я запускал проект в первый раз, я указал расширение как xcdatamodeld. Но это не удалось, оно должно быть momd. Но я передал нуль вместо momd, предполагая, что расширение не будет обязательным. Но с нулевым значением initWithContentsOfURL не удалось, и когда я наконец ввел momd, он отлично работал.