Поддерживает ли Xcode регионы?
-
08-07-2019 - |
Вопрос
Поддерживает ли Xcode что-либо похожее на стиль Visual Studio? #region
директивы для произвольного сворачивания кода?
Решение
Нет, вы можете сворачивать код только на различных определенных уровнях области видимости в Xcode.
Однако вы можете использовать небольшие хитрости, чтобы упростить навигацию по меню функций.
#pragma mark
Позволяет создать группу, в которой в меню функций будет отображаться метка, следующая за меткой.Если метка представляет собой дефис, в меню функций вставляется разделитель.
Кроме того, в меню функций будут отображаться следующие метки в комментариях:
// MARK:
// TODO:
// FIXME:
// !!!:
// ???:
Очевидно, что поскольку знак #pragma на самом деле не является переносимым, если вы создаете переносимое приложение и хотите, чтобы оно работало с компилятором, который не просто игнорирует директивы #pragma, которые он не понимает, знак в стиле комментария является достойным альтернатива.
Другие советы
Я иду в ад за это, но здесь идет:
В верхней части данного файла поместите
#define FOLD 1
Везде, где вы хотите что-то сложить, оберните это в блок if следующим образом:
if(FOLD) {
// your code to hide
// more code
}
Это позволит вам сложить его из виду.
Это не сработает в том месте, где вы хотите больше всего, то есть вокруг групп функций или методов. Р>
Это может быть полезно внутри длинного, линейного метода без внутренних условных выражений или циклов, но такие методы не распространены в общем коде пользовательского интерфейса Mac OS X, хотя, если вы пишете какой-то большой числовой или графический кодовый код, это может помочь сгруппировать вещи.
И if (fold) совершенно лишний. Просто используйте фигурные скобки внутри метода или функции, и Xcode свернет их.
Попробуйте так:
//region title1
{
//region Subtitl1
{
}
//region Subtitl2
{
}
}
Это можно сделать так:
Без поддержки регионов в стиле .Net следующее: возможность свернуть все ваши функции одновременно - следующая лучшая вещь.
команда - опция - shift - стрелка влево свернуть все.
команда - опция - shift - стрелка вправо расширить все.
Xcode запомнит последнее состояние свернутых функций.
Поместите нужный код в скобки {}, и он станет зоной свертывания.
Но вы должны иметь в виду, что скобки также определяют область видимости переменных, поэтому в этом коде не должно быть объявлений переменных, которые будут использоваться вне этих скобок.
Одно хорошее решение, которое я только что нашел:
Поместите ваш проект в одно большое пространство имен. Закройте и снова откройте это пространство имен для отдельных разделов исходного файла:
namespace myproj { // members of class MyClassA
void MyClassA::dosomething()
{
}
void MyClassA::dosomethingelse()
{
}
} // members of class MyClassA
namespace myproj { // members of MyClassB
void MyClassB::dosomething()
{
}
void MyClassB::dosomethingelse()
{
}
} // members of MyClassB