После изменения расположения файлов project не может распознать некоторые из моих классов

#ios #xcode #github #version-control

#iOS #xcode #github #контроль версий

Вопрос:

Во-первых, я знаю, что это проблема конфигурации, потому что мой код создавался и работал нормально, прежде чем я синхронизировал свой проект с GitHub. Похоже, что система управления версиями Xcode испытывает проблемы с распознаванием некоторых моих файлов, и я получаю Use of unresolved identifier... ошибки, когда используются инициализаторы этих файлов, и они работали раньше. Я использую последние версии Xcode и OS X, и это шаги, которые я предпринимал до и после возникновения проблемы…

ПЕРЕД:

  • После нескольких раундов реализации и фиксации с локальным репозиторием по умолчанию я создал и запустил приложение несколько раз без каких-либо проблем.

  • Я создал новый репозиторий на GitHub, зафиксировал (с помощью push на пульты дистанционного управления), и все это отлично перешло на GitHub, а также создавалось и работало в симуляторе.

  • Чтобы организовать репозиторий (в соответствии с «группами», которые я создал в Xcode) Я провел небольшое исследование, а затем добавил вложенные каталоги в папку моего проекта. Я повторно открыл Xcode и исправил пути к файлам. Некоторые из них использовались, но некоторые продолжали отображаться ? (хотя я все еще мог получить доступ к коду просто отлично), и я получил соответствующие Missing Files... предупреждения.

  • Поскольку я не мог заставить новую иерархию работать (файлы w / ? s, которые не были распознаны, не смогли быть переданы на GitHub), я попытался переместить файлы обратно. Это сработало для большинства, но для некоторых (которые, похоже, являются измененными файлами) Мне пришлось переименовать их, воссоздать новый файл, а затем вставить их содержимое (в этом, я думаю, и заключается проблема). Я смог зафиксировать все на GitHub (даже проблемные файлы выросли), но все предупреждения остались.

  • Чтобы убрать предупреждения, я попытался запустить свои тесты, и именно тогда Use of unresolved identifier... появились ошибки, и, конечно, сборка завершилась неудачно.

ПОСЛЕ:

  • Я проверил, что все пути и целевые членства были правильными.

  • Когда это не сработало, я создал совершенно новый проект (хотя я добавил его в ту же рабочую область; не уверен, имеет ли это значение) и скопировал / вставил весь свой код в новые файлы. Я не перетаскивал файлы и не ссылался на них, и я не связывал новый проект с GitHub. Когда я приступил к сборке, те же ошибки были в тех же местах…

  • Я вышел из рабочей области и открыл новый проект отдельно. По-прежнему никакой радости.

Мы будем очень признательны за любую помощь или указания в правильном направлении.

Редактировать:

  • После некоторой помощи я попытался удалить ссылку и перетащить файл вручную, но это не решило проблему.

  • Я также проверил Build Phases -> Compile Sources , и все было указано нормально без флагов компилятора. Я удалил и повторно добавил из источников компиляции, проблема сохраняется.

Ответ №1:

Вы можете попробовать удалить referencer для отсутствующего файла класса в Xcode, затем добавить тот же файл в папку (щелкните правой кнопкой мыши добавить файл) из физического расположения рабочей области, это может помочь.

Комментарии:

1. Большое спасибо за ваш быстрый ответ. Повторное добавление файла таким образом сделало свое дело

2. ИСПРАВЛЕНИЕ: казалось, что ошибки устранены, но сборка вернула их обратно: (

3. Возможно, вы можете перейти к целевому проекту -> этапы сборки -> скомпилировать исходные тексты, проверьте там отсутствующий файл класса, он не должен быть красным.

4. Он указан черным цветом без ошибок компилятора. Я удалил и повторно добавил исходные коды для компиляции, но все равно никакой радости.

5. @testable импортируйте YourProjectName в свой тестовый класс. проверьте, что вы добавили целевое членство для каждого файла класса в свой тестовый проект

Ответ №2:

После третьей перестройки совершенно нового приложения со всеми новыми файлами я скопировал файлы заново, и на этот раз, похоже, все работает нормально. Пришлось устранить кучу проблем с подготовкой, чтобы убедиться, что это сработало (возможно, это было частью проблемы, но я сомневаюсь в этом), но с приложением все вернулось к норме. Единственное, что я сделал по-другому на этот раз, это не добавление нового проекта в ту же рабочую область.