Xcode Включает файлы .xib, которые были удалены! - PullRequest
20 голосов
/ 12 февраля 2011

У меня проблема с Xcode, которую я не могу решить.У меня есть контроллер представления, позволяющий вызвать «foobarViewController», для его сопровождения был «foobarViewController.xib».В этом контроллере я демонстрировал вид, чтобы он выглядел так, как я хотел, но решил сделать это прагматично.И поэтому я удалил xib из проекта, очистил все цели, перезапустил xcode, перезапустил COMPUTER, даже удалил старую папку сборки и все еще, когда я компилирую представление, включает объекты, которые были только в файле XIB.здесь происходит?

Ответы [ 9 ]

27 голосов
/ 12 февраля 2011

Попробуйте эти 3 вещи:

  • Удалить приложение из симулятора

Из Xcode:

  • Меню сборки -> Очистить все цели -> Установите оба флажка -> Очистить
  • Меню XCode -> Очистить кеши ... -> Очистить
9 голосов
/ 12 февраля 2011

Вы удалили приложение из симулятора? Когда XCode устанавливает сборку разработки, либо в симуляторе, либо на устройстве, он не удаляет существующие файлы. Он просто перезаписывает файлы и добавляет новые файлы. Это означает, что если вы удалите файл из Xcode, он останется в уже установленном встроенном продукте. Решение состоит в том, чтобы удалить продукт с вашего симулятора / устройства перед установкой.

4 голосов
/ 12 февраля 2011

AppDelegate загружает MainWindow.xib, а в MainWindow он включает ваш foobarViewController.xib, поэтому возникает ваша проблема.Попробуйте отредактировать MainWindow, укажите его на класс контроллера вместо включения xib.

4 голосов
/ 12 февраля 2011

Вы уверены, что он был удален? Возможно, вы только удалили ссылку на него. Откройте папку проекта и убедитесь, что ее там нет. Еще лучше, сделайте поиск в центре внимания по имени файла.

Если вы не можете найти файл, он все еще неразрешим, и вы сделали контроллер представления программным способом, попробуйте вставить свой код в текстовый редактор, удалить классы, заново создать и вставить код обратно.

3 голосов
/ 06 июня 2011

проверить этот пост: Как очистить кэш и очистить все цели XCode 4

"Command-Option-Shift-K, чтобы очистить папку сборки. Еще лучше выйти из Xcodeи вручную удалите Library / Developer / Xcode / DerivedData. Удалите все его содержимое, потому что есть ошибка, из-за которой Xcode будет запускать старую версию вашего проекта, которая где-то там.Содержимое и настройки.

Наконец, для полноты вы можете удалить содержимое папок / var /; там также происходит некоторое кэширование. "- Мэтт

2 голосов
/ 25 апреля 2011

В XCode4 Command-Option-Shift-K должна выполнить эту работу. Как и в случае с продуктом, нажмите клавишу параметров, теперь параметр «Очистить» изменится на «Очистить папку сборки ...» и выберите этот параметр.

1 голос
/ 02 ноября 2012

XCode кэширует файлы XIB.Возможные решения:

  1. Если вы переименуете свой контроллер представления, представление будет содержать только более новый файл XIB.Старые элементы не будут отображаться.

  2. Если вы решите избавиться от файла xib и сделать вид программным способом, вы можете переопределить метод loadView в вашем viewController.Используйте этот метод только в том случае, если вы не хотите загружать представление из xib-файла и хотите создать представление программно.

    • (void) loadView {self.view = [[[UIViewalloc] init] autorelease];}

Проблема с удалением приложения из устройства / симулятора и последующей его сборкой: пользователи, которые уже установили приложение на свое устройство и установили поверх него новую версию, будутпродолжать видеть старшую кси.

0 голосов
/ 25 мая 2014

Иногда очень сложно удалить приложение с устройства / симулятора, особенно если вы сохранили данные и конфигурацию.

Чтобы решить эту проблему, для каждого View Controller, для которого вы удалили файл .xib, добавьте следующий код:

-(NSString*) nibName
{
    return nil;
}
0 голосов
/ 09 января 2013

В iOS Simulator Menu> Resent Содержание и настройки

Достаточно.

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