在Objective C中,我可以使用#pragma mark来标记符号导航器中的代码片段。由于这是一个C预处理器命令,所以在Swift中不可用。在Swift中有替代品吗,或者我必须使用丑陋的评论吗?
当前回答
对于那些对使用扩展和pragma标记感兴趣的人(如第一条评论所述),下面是如何从Swift工程师实现它:
import UIKit
class SwiftTableViewController: UITableViewController {
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
override func viewDidLoad() {
super.viewDidLoad()
}
}
extension SwiftTableViewController {
override func numberOfSectionsInTableView(tableView: UITableView?) -> Int {
return 1
}
override func tableView(tableView: UITableView?, numberOfRowsInSection section: Int) -> Int {
return 5
}
override func tableView(tableView: UITableView?, cellForRowAtIndexPath indexPath: NSIndexPath?) -> UITableViewCell? {
let cell = tableView?.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as UITableViewCell;
cell.textLabel.text = "Hello World"
return cell
}
}
这也不一定是最佳实践,但如果您愿意,可以这样做。
其他回答
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跳转栏中的显示方式。
Xcode 8现在像下面这样处理它,在方法下拉菜单中显示如下:
有三个选项可以在Swift中添加#pragma_mark:
1) // MARK: -你的文字在这里-
2) // TODO: -你的文本在这里-
3) // FIXME: -你的文本在这里-
注意:用于添加分隔符
在Xcode 11中,他们添加了小地图,可以激活编辑器->小地图。
小地图将显示每个标记文本在代码中快速定位。 每个标记都写为// mark: Variables