2008-11-13 28 views
35

Xcode是否支持任何類似於Visual Studio風格#region指令的任意代碼摺疊?Xcode區域

回答

54

不行,你只能摺疊Xcode中各種規定的範圍級別的代碼。

您可以使用小技巧,讓通過功能菜單導航更加簡單,雖然。

#pragma mark 

允許您創建一個組,其中標籤以下標誌將在功能菜單顯示。如果標籤是連字符,則將分隔符插入到功能菜單中。

此外,在評論下面的標籤將在功能菜單顯示:

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

顯然因爲的#pragma標誌是不是真的便攜,如果您正在構建一個便攜式的應用程序,並需要用它來工作一個不會忽略它不理解的#pragma指令的編譯器,評論風格標記是一個不錯的選擇。

+2

C標準說符合實現*必須忽略它不理解的#pragma指令。當然,每一個`#pragma`指令都不是以`STDC`開始的,無論如何都是實現定義的,所以仍然不是那麼便於使用。 – dreamlax 2011-12-13 18:59:06

+0

有人絕對應該爲自定義代碼摺疊製作一個XCode插件。這將是非常有用的:) – brimstone 2015-11-26 21:03:39

12

我要下地獄這一點,但這裏有雲:

在給定文件的頂部,把

#define FOLD 1 

不管你想要去折的東西,如果把它包在一個塊像這樣:

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

這將讓你把它摺疊在視線之外。

+8

這將是一個好主意,但你只能在功能範圍內放置一個if語句。您不能將結構,枚舉和函數定義包裝在if中。 – Chuck 2009-04-04 08:21:25

+48

+1去地獄 – MrJD 2012-04-21 14:39:52

+1

對於大多數不支持代碼摺疊預處理指令的IDE,另一個+1,因爲我認爲這是因爲他們想要強制我們使用方法而不是摺疊,因此+1對於方法分組,-1因爲我認爲這是因爲他們想迫使我們使用類。所以我們甚至:P。請原諒我的無知,如果有的話。 – 2012-09-08 11:47:29

4

這不會在你最需要它的地方工作,就是圍繞函數或方法組。

它可能在一個很長的線性方法中很有用,沒有內部條件或循環,但是這些方法在一般的Mac OS X UI代碼中並不常見,但是如果你正在編寫一些大的數字或圖形處理代碼它可以幫助分組事物。

和IF(倍)完全是多餘的。只需在方法或函數中使用大括號,Xcode就會摺疊它們。

-3

一個很好的解決辦法,我才發現:

把你的項目到一個大的命名空間。 關閉並重新打開這個命名空間爲您的源文件的各個部分:

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 
0

放在括號內{}您需要的代碼,它會成爲一個摺疊區。

但你要記住,括號中還定義變量的作用域,所以這段代碼不應該將這些括號外使用的變量聲明。

3

試試這個方法:

//region title1 
{ 
    //region Subtitl1 
    { 

    } 
    //region Subtitl2 
    { 

    } 
} 

它可以做這樣的:

It can do like that :

1

沒有對.NET風格的區域支持,能夠在同一時間摺疊所有的功能是下一個最好的事情。

命令 - 選項 - 轉變 - 左箭頭 摺疊所有。

命令 - 選項 - 轉變 - 右箭頭 展開所有。

Xcode會記住摺疊函數的最後一個狀態。