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


当前回答

在Objective-C中使用Pragma标记- [SOME TEXT HERE]将几个函数通过行分隔分组在一起。

在Swift中,您可以使用MARK, TODO或FIXME来实现这一点

i. MARK: //MARK: viewDidLoad

这将创建一条水平线,函数分组在viewDidLoad下(如截图1所示)

ii. 待办事项: //待办事项: - viewDidLoad

这将把函数分组在TODO: - viewDidLoad类别下(如截图2所示)

iii. FIXME : //FIXME - viewDidLoad

这将把函数分组在FIXME下:- viewDidLoad类别(如截图3所示)

查看apple文档了解详细信息。

其他回答

你可能也会对Swift 4.2 / XCode 10编译器指令感兴趣

#warning("Some string to display")

and

#error("Some error to display")

当你真的不想错过什么东西时,它可能会很有用。

Use

// MARK: SectionName

or

// MARK: - SectionName

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

为了方便,只需添加

// MARK: - <#label#>

到您的代码片段。

▽替代方式

这样使用它

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

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

//# MARK: - Spinner Class Methods

在冒号和描述之间添加一行,以插入分隔线。这有助于更好地组织代码。上面的代码和截图使用了包含一行的MARK注释。

//#标记:-文本方法(LINE) //#标记:文本方法(NO LINE)

这只适用于MARK注释。

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

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

Xcode 8现在像下面这样处理它,在方法下拉菜单中显示如下: