在Objective C中,我可以使用#pragma mark来标记符号导航器中的代码片段。由于这是一个C预处理器命令,所以在Swift中不可用。在Swift中有替代品吗,或者我必须使用丑陋的评论吗?


当前回答

今天早上在WWDC上,苹果工程师在Swift实验室确认,目前没有任何#pragma或类似的东西,他们认为这是一个bug,很快就会出现,所以我猜是beta 2,我希望。

不管怎样,它在路上了。


Xcode现在支持//MARK:, //TODO:和//FIXME标记来注释你的代码和 在跳转栏中列出它们

其他回答

今天早上在WWDC上,苹果工程师在Swift实验室确认,目前没有任何#pragma或类似的东西,他们认为这是一个bug,很快就会出现,所以我猜是beta 2,我希望。

不管怎样,它在路上了。


Xcode现在支持//MARK:, //TODO:和//FIXME标记来注释你的代码和 在跳转栏中列出它们

Add a to-do item: Insert a comment with the prefix TODO:. For example: // TODO: [your to-do item]. Add a bug fix reminder: Insert a comment with the prefix FIXME:. For example: // FIXME: [your bug fix reminder]. Add a heading: Insert a comment with the prefix MARK:. For example: // MARK: [your section heading]. Add a separator line: To add a separator above an annotation, add a hyphen (-) before the comment portion of the annotation. For example: // MARK: - [your content]. To add a separator below an annotation, add a hyphen (-) after the comment portion of the annotation. For example: // MARK: [your content] -.

在Objective-C代码中,Xcode检测像// MARK: - foo这样的注释,它比#pragma更可移植。但这些似乎也没有被采纳(目前?)

编辑:在Xcode 6 beta 4中修复。

Pragma标记是一种提高代码可读性的方法。pragma注释会像Xcode跳跃栏上的标签一样出现。

//MARK:  <Your comment goes here>

示例:在代码中,

//MARK: Properties

// MARK: View Life cycle

//MARK: Helper methods

这是它在Xcode跳转栏中的显示方式。

Use

// MARK: SectionName

or

// MARK: - SectionName

这将在pragma标记上面加一行,使其更具可读性。

为了方便,只需添加

// MARK: - <#label#>

到您的代码片段。

▽替代方式

这样使用它

private typealias SectionName = ViewController
private extension SectionName  {
    // Your methods
}

这不仅可以添加标记(就像pragma mark一样),还可以很好地隔离代码。