Подтвердить что ты не робот

Почему мой XIB изменяется каждый раз, когда я открываю его в IB?

Я нажимаю на XIB через навигатор проекта. Он открывается и сразу меняет значок на серый, у меня есть несохраненные изменения. Если я сохраню изменения, нажмите на другой файл и нажмите "назад", чтобы снова открыть его, больше изменений. Всегда изменяется при открытии.

Это происходит с одним файлом XIB в этом проекте и паролем в другом проекте. Мне бы хотелось узнать, почему это происходит, и что я могу сделать, чтобы исправить это сейчас и предотвратить его в будущем.

Примечание: использование Xcode 3.2 Build 4C199 со Snow Leopard

Изменить: я добавил несколько разделов, которые были удалены из XML на одном из этих открываемых/модификаций

        <key>outlets</key>
        <dict>
            <key>addEventTabBarController</key>
            <string>UITabBarController</string>
            <key>window</key>
            <string>UIWindow</string>
        </dict>
        <key>superclass</key>
        <string>NSObject</string>

и

        <key>outlets</key>
        <dict>
            <key>courseTableCell</key>
            <string>UITableViewCell</string>
        </dict>
        <key>superclass</key>
        <string>UITableViewController</string>
4b9b3361

Ответ 1

Я закончил подачу этой проблемы Apple. Их ответ был непросветлен и говорил о возможных оптимизации, обновлении метаданных для новой версии Xcode и т.п.

Я отследил 100 версий от щелчка и по файлу. Как сказал Apple, это было "оптимизация" каждый раз, но каждый раз он просто перемещал некоторые XML-теги. Никогда не довольные своими оптимизациями, они перемещали их в следующий раз, когда они были открыты. Я считаю, что это ошибка с Xcode, раздражающая, но в основном безвредная.

Это происходило только со старыми XIB и либо перемещало содержимое в новый XIB файл, либо (что действительно произошло). Раскадровка избавилась от проблемы.

Ответ 2

Я не хотел использовать раскадровки, как было предложено в одном из других ответов. Вот альтернативное простое/быстрое исправление.

Перейдите в Свойства документа построителя интерфейса инспектора при выборе файла представления xib. Тогда вам нужно

  • измените "Развертывание" на нечто иное, чем Project SDK, в моем случае я установил его в последнюю версию iOS (iOS 6 в настоящее время).
  • измените разработку на нечто отличное от "предыдущей версии", в моем случае я установил ее в последнюю версию Xcode 4.5

Я запускаю Xcode 4.5.2 на Lion.

Надеюсь, что это поможет.

Ответ 3

основная идея...

XCode хранит множество номеров версий всех разных типов. Если вы посмотрите на XML-представление XIB, вы должны обнаружить, что подавляющее большинство этих небольших изменений находятся в этих номерах версий.

Как это происходит...

Всякий раз, когда вы делаете обновление Xcode, многое другое в Xcode (и часто внутри SDK) обновляется. Если вы внесете изменения в XIB файл, эти изменения в версии будут вставлены в XIB. Итак, если вам удастся открыть XIB файл, изменения в версии будут помещены в этот файл. Как только вы создадите или запустите приложение, эти изменения будут сохранены в файле.

Но я не обновляю Xcode через некоторое время!

Хорошо, всякий раз, когда вы делали последнее обновление, файлы XIB будут обновляться с новыми номерами версий, когда вы их открываете, по одному с течением времени.

Ответ 4

Изменить XCode 4 теперь лучше (возможно), если у вас возникло желание проголосовать за это, а затем спросите себя: "Перешел ли я с XCode 3 на XCode 4 с помощью Versioning?" Если нет, тогда вы понятия не имеете, что делаете, и, пожалуйста, не голосуйте по этому поводу. Если у вас есть, вы знаете, насколько вы плохо страдали, но да, этот вопрос иначе мертв. Если вы обнаружите, что открываете старый проект, просто заново создайте его и скопируйте файлы.

Я не знаю точного ответа, но я знаю, что эти вещи помогут вам найти его:

XCode 4 печально известен тем, что он завинчивается. Если вы поместите свой каталог в систему Версии, (Git), затем возьмите GitBox и сохраните проект, чтобы дать ему состояние и создать репозиторий git. Репозиторий git сохранит состояние. Gitbox визуально покажет вам изменения.

После его открытия вы сможете щелкнуть правой кнопкой мыши по этому файлу в GitBox и нажать "увидеть разницу" или "просмотреть изменения" или еще что-то.

Вы будете автоматически прокручиваться по строкам. Если вы можете связать XML с Xib, вы можете выяснить, какие изменения.

Я отправился из Льва в Snow Leopard, поэтому больше не занимаюсь этим.