Конфликт класса сборки теста Xcode 4 - PullRequest
4 голосов
/ 05 мая 2011

Привет всем, я новичок в Xcode / Cocoa / Objective C и имею досадную проблему, которую я не могу отследить.У меня есть программа с несколькими классами и набором модульных тестов, встроенных с помощью Xcode, включающего опцию «включить модульные тесты», когда я создавал проект.По большей части все работает нормально, но когда я запускаю свои тесты, я вижу следующую ошибку:

objc [12505]: класс [class foo] реализован в обоих / Users / [me]/ Библиотека / Поддержка приложений / iPhone Simulator / 4.3 / Приложения / 1F5222ED-0A3C-41BC-AFA3-CB8FC744EFCE / [имя приложения] .app / [имя приложения] и / Users / [me] / Библиотека / Разработчик / Xcode / DerivedData /[имя приложения] -eumytpkyfitihadpqeyxjpwapxoa / Build / Products / Debug-iphonesimulator / [имя приложения] Tests.octest / [имя приложения] Тесты.Один из двух будет использован.Какой из них не определен.

Просмотр журналов сборки цели теста показывает, что XCode компилирует [class foo] для цели теста, но ни один из других классов, используемых программой тестирования(извиняюсь, если моя терминология неверна).

Верх моего файла [имя приложения] Tests.m выглядит следующим образом:

#import "[app name]Tests.h

#import "[class x].h"
#import "[class y].h"
#import "[class z].h"
#import "[class a].h"
#import "[class foo].h"

[имя приложения] Tests.m использует всевышеупомянутые классы с [class foo] не имеют никакого реального значения, о котором я могу думать, кроме, может быть, того, что он был создан первым.Я попытался переместить объявление #import "[class foo].h" без изменений.Я попытался переименовать [class foo], очистить продукт и перестроить без изменений.

Глядя на файлы в Finder, все классы программы находятся в корневом каталоге для [имя приложения] и толькодва файла теста находятся в корневом каталоге для тестов [app name], что, как я полагаю, так и должно быть.

Часто выполнение тестов действительно работает, даже с этой ошибкой, но иногда это не так илиточки останова будут работать непредсказуемо в [class foo], что действительно раздражает.Любые мысли или предложения будут оценены.

Спасибо.

1 Ответ

2 голосов
/ 05 мая 2011

Эй, не знаю, решит ли это вашу проблему, но, похоже, вам нужно восстановить папку с производными данными.

У меня тоже возникли проблемы с классами старых проектов после обновления. Я решил проблему, удалив приложение из симулятора, очистив проект и перейдя в папку производных данных по адресу / Users / [me] / Library / Developer / Xcode / DerivedData /

Вы можете удалить всю папку с именем вашего приложения. Xcode восстановит его самостоятельно. Другой метод, который иногда работает, - это создание нового проекта с Xcode 4 и перемещение всех файлов вашего проекта в этот новый проект. Это обеспечит отсутствие проблем с обновленными настройками проекта в Xcode4.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...