在Objective C中,我可以使用#pragma mark来标记符号导航器中的代码片段。由于这是一个C预处理器命令,所以在Swift中不可用。在Swift中有替代品吗,或者我必须使用丑陋的评论吗?
当前回答
苹果在最新版本的“构建可可应用程序”中表示,
Swift编译器不包括预处理器。相反,它需要 编译时属性、构建配置和 语言特性来完成相同的功能。对于这个 原因是,在Swift中不导入预处理器指令。
#字符似乎仍然是你处理各种构建配置和类似事情的方式,但看起来他们试图减少你对大多数预处理的需求,并将你转发到其他语言特性。也许这是为了帮助Playgrounds和REPL的操作尽可能接近完全编译的代码。
其他回答
你可以使用// MARK:
也有讨论认为,自由使用类扩展可能是一种更好的实践。由于扩展可以实现协议,例如,你可以把你所有的表视图委托方法放在一个扩展中,并将你的代码分组在一个比#pragma mark更语义的级别上。
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注释。
在Xcode 11中,他们添加了小地图,可以激活编辑器->小地图。
小地图将显示每个标记文本在代码中快速定位。 每个标记都写为// mark: Variables
试试这个:
// MARK: Reload TableView
func reloadTableView(){
tableView.reload()
}