Build создает .momd в комплекте, в котором отсутствует файл .mom - PullRequest
2 голосов
/ 01 апреля 2012

У меня есть приложение, которое уже давно работает на симуляторе iPhone. Недавно я решил, что хочу повторно использовать модель данных и связанные с ней классы в другом проекте - поэтому я перетащил их из этого окна проекта в другой, а затем велел Xcode не копировать, а просто делать ссылки. Сначала это не сработало, поэтому я перепрыгнул через несколько обручей, чтобы попытаться это исправить (я могу спросить об этом подробнее в другом посте). После всего этого я перекомпилировал и попытался запустить оригинальное приложение - и оно больше не работает. В ходе дальнейшего расследования я обнаружил, что при повторной компиляции исходного приложения я получаю пакет, содержащий пакет .momd, но содержащий только файл Versioninfo.plist - без файла .mom, без файла .omo, подобного I '. Я ожидаю увидеть. Я не помню, чтобы вносить какие-либо изменения в исходное приложение. Я не получаю никаких предупреждений. Я только что получил неполный пакет .momd (и неудивительно, что мое приложение теперь падает).

Что здесь происходит?

Кстати, приложение теперь вылетает с этим сообщением: Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «* - [__ NSArrayM insertObject: atIndex:]: объект не может быть nil»

Что я получу при выполнении этой строки кода:

self.productRegistry = [[UIManagedDocument alloc] initWithFileURL:self.productRegistryURL];

1 Ответ

3 голосов
/ 26 апреля 2012

Я понял это, посмотрев более внимательно на расположение файлов в каталоге проекта с помощью Finder. В окне Xcode все выглядит нормально, но в реальном каталоге проекта я обнаружил, что пакет .datamodeld оказался на верхнем уровне каталога проекта - на том же уровне, что и сам пакет проекта. Xcode явно не понравился, но, к сожалению, он не жаловался - он просто создал частичный вывод сборки. После того, как я переместил пакет .datamodeld в ту же папку, что и остальная часть кода проекта, все заработало просто отлично.

Это может показаться странным. Я ожидаю, что Xcode либо увидит, что все хорошо, и правильно построит, ИЛИ увидит, что все не совсем так, как должно быть, и потерпит неудачу. В этом случае он не собирался правильно, но об этом молчал.

Надеюсь, этот ответ когда-нибудь кому-нибудь поможет.

...