Xcode Включает файлы.xib, которые были удалены!
У меня проблема с Xcode, которую я не могу решить. У меня есть контроллер представления, позволяющий вызвать "foobarViewController", для его сопровождения был "foobarViewController.xib". В этом контроллере я демонстрировал вид, чтобы он выглядел так, как я хотел, но решил сделать это прагматично. И поэтому я удалил xib из проекта, очистил все цели, перезапустил xcode, перезапустил COMPUTER, даже удалил старую папку сборки и все еще, когда я компилирую представление, включает объекты, которые были только в файле XIB.
Что здесь происходит?
9 ответов
Попробуйте эти 3 вещи:
- Удалить приложение из симулятора
Из Xcode:
- Меню сборки -> Очистить все цели -> Установите оба флажка -> Очистить
- Меню XCode -> Пустые кеши... -> Пусто
Вы удалили приложение из симулятора? Когда XCode устанавливает сборку разработки, либо в симуляторе, либо на устройстве, он не удаляет существующие файлы. Он просто перезаписывает файлы и добавляет новые файлы. Это означает, что если вы удалите файл из Xcode, он останется в уже установленном встроенном продукте. Решение состоит в том, чтобы удалить продукт с вашего симулятора / устройства перед установкой.
Вы уверены, что он был удален? Возможно, вы только удалили ссылку на него. Откройте папку проекта и убедитесь, что ее там нет. Еще лучше, сделайте поиск в центре внимания по имени файла.
Если вы не можете найти файл, он все еще неразрешим, и вы сделали контроллер представления программным способом, попробуйте вставить свой код в текстовый редактор, удалить классы, заново создать его и вставить код обратно.
AppDelegate загружает MainWindow.xib, а в MainWindow он включает ваш foobarViewController.xib, поэтому возникает ваша проблема. Попробуйте отредактировать MainWindow, укажите его на свой класс контроллера вместо включения xib.
Проверьте этот пост: Как очистить кэш и очистить все цели Xcode 4
"Command-Option-Shift-K, чтобы очистить папку сборки. Еще лучше выйти из Xcode и вручную очистить Library/Developer/Xcode/DerivedData. Удалите все его содержимое, потому что есть ошибка, из-за которой Xcode запускает старую версию вашего проекта. это где-то там.
В симуляторе выберите "Симулятор iOS"> "Сбросить содержимое и настройки".
Наконец, для полноты вы можете удалить содержимое папок / var /; там тоже происходит кеширование ". - matt
В XCode4, Command-Option-Shift-K должна делать эту работу. Как и в случае с продуктом, нажмите клавишу параметров, теперь параметр "Очистить" изменится на "Очистить папку сборки..." и выберите этот параметр.
XCode кэширует файлы XIB. Возможные решения:
Если вы переименуете свой контроллер представления, представление будет содержать только более новый файл XIB. Старые элементы не будут показаны.
В случае, если вы решите избавиться от xib-файла и сделать представление программным способом, вы можете переопределить метод loadView в вашем viewController. Используйте этот метод только в том случае, если вы не хотите загружать представление из xib-файла и хотите создать представление программным способом.
- (void) loadView {self.view = [[[UIView alloc] init] autorelease]; }
Проблема с удалением приложения из устройства / симулятора и последующим его созданием: пользователи, которые уже установили приложение на свое устройство и установили поверх него новую версию, будут продолжать видеть более старую версию Xib.
В iOS Simulator Menu > Переслать содержимое и настройки
Достаточно.
Иногда очень сложно удалить приложение с устройства / симулятора, особенно если вы сохранили данные и конфигурацию.
Чтобы решить эту проблему, для каждого View Controller, для которого вы удалили файл.xib, добавьте следующий код:
-(NSString*) nibName
{
return nil;
}