在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文档了解详细信息。

其他回答

//# MARK: - Spinner Class Methods

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

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

这只适用于MARK注释。

在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文档了解详细信息。

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

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

Xcode官方文档

苹果目前的官方文档部分为可见性注释代码引入了三个注释:TODO:, FIXME:和MARK:。

最新的Xcode版本(v14.2)支持另外两个注释(虽然没有出现在官方文档中):!!:和??

注意:! !:和??:被某些Xcode版本(如v10.0)不支持,原因未知。

示例截图1 - Xcode 14.2 + macOS 13.1 (Ventura)

示例截图2 - Xcode 10.1 + macOS 10.14.3 (Mojave)

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

//MARK:  <Your comment goes here>

示例:在代码中,

//MARK: Properties

// MARK: View Life cycle

//MARK: Helper methods

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