Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c Xcode支持区域吗?_Objective C_Xcode_Code Folding - Fatal编程技术网

Objective c Xcode支持区域吗?

Objective c Xcode支持区域吗?,objective-c,xcode,code-folding,Objective C,Xcode,Code Folding,Xcode是否支持类似Visual Studio风格的任意代码折叠指令?否,您只能在Xcode中定义的不同范围级别上折叠代码 不过,您可以使用一些小技巧使通过功能菜单进行导航变得更容易 #pragma mark 允许您创建一个分组,在该分组中,标签下面的标记将显示在功能菜单中。如果标签是连字符,将在功能菜单中插入分隔符 此外,注释中的以下标签将显示在功能菜单中: // MARK: // TODO: // FIXME: // !!!: // ???: 显然,由于#pragma标记不是真正的可移

Xcode是否支持类似Visual Studio风格的任意代码折叠指令?

否,您只能在Xcode中定义的不同范围级别上折叠代码

不过,您可以使用一些小技巧使通过功能菜单进行导航变得更容易

#pragma mark
允许您创建一个分组,在该分组中,标签下面的标记将显示在功能菜单中。如果标签是连字符,将在功能菜单中插入分隔符

此外,注释中的以下标签将显示在功能菜单中:

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

显然,由于#pragma标记不是真正的可移植的,如果您正在构建一个可移植的应用程序,并且需要它与一个编译器一起工作,而不只是忽略它不理解的#pragma指令,那么注释样式标记是一个不错的选择。

我会为此下地狱,但这里有:

在给定文件的顶部,放置

#define FOLD 1
无论你想在哪里折叠某物,都要像这样将其包裹在if块中:

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

这将使您可以将其折叠到看不见的地方。

这在您最想要的地方不起作用,即在函数或方法组周围

在没有内部条件或循环的长线性方法中,它可能很有用,但这种方法在一般Mac OS X UI代码中并不常见,尽管如果您正在编写一些大型数字或图形处理代码,它可以帮助您进行分组


如果(折叠)是完全多余的。只要在方法或函数中使用大括号,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

将所需代码放在括号{}内,它将成为一个折叠区

但您必须记住,括号还定义了变量范围,因此此代码不应包含将在这些括号之外使用的变量声明。

请尝试以下方法:

//region title1
{
    //region Subtitl1
    {

    }
    //region Subtitl2
    {

    }
}
它可以这样做:


如果不支持.Net样式的区域,那么能够同时折叠所有函数是次佳选择

命令选项左移箭头 让一切都崩溃

命令选项向右移动箭头 扩展所有


Xcode将记住折叠函数的最后状态。

在Xcode 12中(可能之前)有一个有用的选项,是首选项“代码折叠功能区”中的一个选项

检查时,源代码如下所示

将鼠标悬停在此功能区上时,将获得基于括号的可折叠区域,如下所示

单击功能区时,它会折叠括号区域,如下所示


它不像Visual Studio中的区域,您可以将它们放在任何您想要的地方,但它们足以整理您的代码文件。

这是个好主意,但您只能在函数范围内放置if语句。你不能在if中包装结构、枚举和函数定义。对于大多数不支持预处理指令的IDE,另一个+1用于代码折叠,-1用于我认为这是因为他们想强制我们使用方法而不是折叠,+1用于方法分组,-1因为我认为这是因为他们想强迫我们使用类。所以我们是平等的:P。请原谅我的无知,如果有的话。为什么要费心定义呢?为什么不只是if(true)?@ftvs我想是因为他不想在实际阅读代码时改变所有的true。在C标准中,一致性实现必须忽略它不理解的
#pragma
指令。当然,每个不是以STDC开头的
#pragma
指令都是实现定义的,所以仍然不是可移植的。一定要有人制作一个用于自定义代码折叠的XCode插件。这是非常有用的:令人惊讶的是,很多人都不知道你可以引入分支而没有分支。如果可行的话,这个解决方案只适用于C++,因为Objto-C不支持NeXePACESNB:在XCODE 8中,要使XCODER记住你的折叠,确保你的项目格式被设置为<代码> XCODE8/0兼容。