Вопрос

Поддерживает ли 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top