Неправильное поведение редактора кода Xcode 6

В последнее время я испытываю некоторые проблемы с редактором кода Xcode 6, которые заключаются в быстрой смене фокуса в окне редактирования, переходе на совершенно другое место в том же файле при редактировании текста. Так все и началось. В последнее время редактор отказывается прокручивать вверх и вниз, зависает, останавливает отображение номеров строк или любого другого текста в целом. Что я могу сделать, чтобы остановить его? Все решения, которые я нашел до сих пор, касаются более старых версий Xcode и не работают для меня.

Обновление: Первоначально я думал, что это опция. В моем коде есть пункт, где я это делаю:

tile?.position.vertical >= 2

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

enum Figure: Int {
     case King = 0
     case Pawn = 1
     case Bishop = 3
     case Knight = 5
     case Rook = 7
     case Queen = 9

     func pieceName() -> String {
        switch self {
        case .Pawn:
            return "Pawn"

        case .King:
            return "King"

        case .Bishop:
            return "Bishop"

        case .Knight:
            return "Knight"

        case .Rook:
            return "Rook"

        case .Queen:
            return "Queen"
        }
    }
}

Обратите внимание, как красиво код окрашивается в оператор switch, очевидно, Pawn, King и т.д. являются частью одного и того же перечисления. Ну, не в моем случае. Моя копия Xcode скажет "Символ не найден", когда я нажимаю на одно из значений case в этой функции. Итак, как вы думаете, может ли это быть виновником моих проблем, и если да, то как я могу это исправить?

Ответ 1

Уравнивайте все размеры шрифта и удаляйте курсив и жирный шрифт в цветовой теме.

Ответ на этот вопрос я обнаружил на форумах разработчиков Apple. К сожалению, я не могу найти там нить. В основном он сказал, что поведение, которое я испытывал, было результатом цветовой темы, которую я использовал, имеющей шрифты разного размера и комбинацию курсивом и жирным шрифтом. Дело в том, что после этой публикации не было больше комментариев, подтверждающих или опровергающих решение. Для меня это все. И теперь, когда @Kirby Todd подтвердил это, я отправляю его как ответ.

Ответ 2

Это происходило со мной в Xcode 7.1.1 (7B1005). Это стало так плохо, что я вернулся в vi некоторое время!

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

Однако в моем случае по крайней мере удаление всех "Производных данных" заставило проблему уйти. Мне даже не пришлось покидать Xcode!

Это просто сделать (предоставляется здесь всем, кто может не знать):

  • В меню Xcode Окно выберите Проекты.
  • Убедитесь, что проект выделен слева - это ваш проект (или щелкните по проекту, чтобы сделать это)
  • Нажмите кнопку Удалить.... рядом с "Производные данные".

Ответ 3

Я, наконец, решил это.

У меня был большой проект с множеством строк и некоторыми устаревшими предупреждениями из-за того, что я использовал такие вещи, как UIAlertView, которые больше не поддерживаются. Оказывается, это были предупреждения, которые вызывали линейные скачки. Кажется, что редактор работает на таймере, проверяя новые предупреждения с безумной скоростью, как каждые 5 секунд, поэтому каждые 5 секунд он будет видеть, обновляется ли мой код, и если бы он это сделал, он бы пробежал все это снова, отметив все желтые предупреждающие метки, что особенно было неустойчивым, если количество строк в моем проекте изменилось, так как окна предупреждения должны были сдвинуться вниз (или вверх). Это вызовет проблемы с обработкой, и строка, которую я редактировал, будет перемещаться вверх и вниз, очень неприятно.

Короче говоря, я отключил устаревшие предупреждения, просто обмотав мои .m в #pragma-марках, и все это ушло (также редактор стал значительно менее лаггированным (это была 30-килограммовая строка кода .m file btw), очень отсталая начните с).

Релевантно: Как избавиться от устаревших предупреждений в xCode С#Pragma CLANG