Xcode поддерживает регионы? - PullRequest
       20

Xcode поддерживает регионы?

35 голосов
/ 14 ноября 2008

Поддерживает ли Xcode что-то похожее на директивы стиля Visual Studio #region для произвольного свертывания кода?

Ответы [ 7 ]

54 голосов
/ 14 ноября 2008

Нет, вы можете сложить код только на различных определенных уровнях видимости в Xcode.

Вы можете использовать маленькие хитрости, чтобы упростить навигацию по меню функций.

#pragma mark

Позволяет создать группу, в которой метка после метки будет отображаться в меню функций. Если метка является дефисом, разделитель вставляется в меню функций.

Также в меню функций будут отображаться следующие метки в комментариях:

// MARK:
// TODO:
// FIXME:
// !!!:
// ???:

Очевидно, что знак #pragma на самом деле не переносим, ​​если вы создаете переносимое приложение и вам нужно, чтобы оно работало с компилятором, который не просто игнорирует директивы #pragma, которые он не понимает, отметкой стиля комментария достойная альтернатива.

14 голосов
/ 04 апреля 2009

Я иду в ад за это, но здесь идет:

Вверху данного файла поставьте

#define FOLD 1

Везде, где вы хотите что-то сложить, оберните это в блок if следующим образом:

if(FOLD) {
 // your code to hide
 // more code
}

Это позволит вам сложить его из виду.

4 голосов
/ 04 апреля 2009

Это не сработает в том месте, где вы хотите больше всего, то есть вокруг групп функций или методов.

Это может быть полезно внутри длинного, линейного метода без внутренних условных выражений или циклов, но такие методы не распространены в общем коде пользовательского интерфейса Mac OS X, хотя, если вы пишете какой-то большой числовой или графический код, это может помочь сгруппировать вещи.

И if (fold) совершенно лишний. Просто используйте фигурные скобки внутри метода или функции, и Xcode свернет их.

2 голосов
/ 24 апреля 2014

Попробуйте так:

//region title1
{
    //region Subtitl1
    {

    }
    //region Subtitl2
    {

    }
}

Это можно сделать так:

It can do like that :

1 голос
/ 09 сентября 2016

Без поддержки регионов в стиле .Net возможность одновременного свертывания всех ваших функций является следующей лучшей вещью.

команда - опция - shift - стрелка влево свернуть все.

команда - опция - shift - стрелка вправо развернуть все.

Xcode запомнит последнее состояние свернутых функций.

0 голосов
/ 31 марта 2013

Поместите нужный код в скобки {}, и он станет зоной складывания.

Но вы должны иметь в виду, что скобки также определяют область видимости переменных, поэтому в этом коде не должно быть объявлений переменных, которые будут использоваться вне этих скобок.

0 голосов
/ 20 июня 2012

Одно хорошее решение, которое я только что нашел:

Поместите ваш проект в одно большое пространство имен. Закройте и снова откройте это пространство имен для отдельных разделов исходного файла:

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
...