Интерфейсный Разработчик, кэширующий плохие данные (voodoo) - PullRequest
3 голосов
/ 16 января 2009

Иногда IB сохраняет старые или плохие ссылки, и я не могу удалить или отредактировать их.

РЕДАКТИРОВАТЬ Я задал этот вопрос вики с целью сбора дополнительных данных об этом явлении. Приветствуются ответы, касающиеся ситуаций, когда другие кодировщики сталкивались с этим.

Это случилось со мной снова прошлой ночью с контроллером стола. Когда я создал проект с шипами, чтобы попытаться воспроизвести ошибку, система работала так, как я ожидал. Затем в самом проекте плохое поведение продолжалось, даже если я удаляю xib-файл и все задействованные контроллеры.

Создание совершенно нового проекта, в котором ни один из исходных (проблемных) файлов xib и nib не работал правильно.

Этот вопрос не об особенностях этого инцидента, а об этом типе инцидента в IB.

Кто-нибудь знает больше об этом типе плохого поведения IB, и, возможно, о более стильном способе его устранения, чем обстрел проекта?

Обратите внимание, что удаление поврежденных файлов IB и воссоздание их в одном и том же проекте не решало эту проблему для меня в прошлом, только новые проекты.

Также приветствуются ответы, касающиеся примеров того, когда / как этот глюк был обнаружен / создан.

Ответы [ 14 ]

0 голосов
/ 19 января 2009

Вы не говорите, сохранялась ли проблема при перезапуске, поэтому я думаю, что это может быть следующей проблемой: в процессе сборки Xcode есть редкая ошибка, когда иногда старые версии выходных файлов застряли в папке / tmp и выиграли не обновляется. IIRC, самое простое решение - очистить цель и перезагрузить компьютер.

0 голосов
/ 19 января 2009

Попробуйте сделать чистую сборку кода и посмотрите, остались ли старые ссылки в xib

0 голосов
/ 17 января 2009

Когда вы говорите, старые или плохие ссылки, вы имеете в виду, что он пытается связать элементы пользовательского интерфейса с выходами или действиями в классе, который больше не существует? Если это так, перейдите на панель соединений (cmd-5) и выберите объект в файле пера. Он должен показать вам все соединения. Любое место, где текст отображается серым цветом и имеет восклицательный знак, должно быть удалено (наведите курсор мыши и щелкните значок x).

В IB вы подключаетесь только к «обещанию» того, каким будет ваш класс при запуске приложения. Обычно IB позволяет вам подключать только то, что может выполнить это обещание, но если вы измените заголовок в Xcode, IB ничего не сможет с этим сделать, кроме как предупредить вас.

0 голосов
/ 17 января 2009

Может быть, не тот ответ, который вы хотите, но вот он: не используйте IB! : -)

У меня тоже были проблемы с его использованием, даже при воспроизведении в точности шагов, описанных в некоторых документах Apple, при многократной попытке с нуля. Поэтому через 3 дня я просто сдался и начал все делать программно, внедряя свою программу за полдня. Я никогда не оглядывался назад с тех пор. Я запускаю IB только изредка, чтобы посмотреть размеры, чтобы я мог вставить их в свой код.

Вероятно, со временем будет легче обновлять мой графический интерфейс, но если ваша история - реальная повторяющаяся проблема, я рад, что расстался со зверем!

...