//MARK: 不适用于Xcode 6.3.2中的 seem . 但是,这就是我对 get it to work 的所作所为:
1)代码:
import Cocoa
class MainWindowController: NSWindowController {
//MARK: - My cool methods
func fly() {
}
func turnInvisible() {
}
}
2)在 jump bar 中,添加 //MARK :注释时似乎没有任何变化 . 但是,如果我单击跳转栏中最右边的名称,在我的情况下它会显示 MainWindowController(with a leading C icon) ,则会显示一个弹出窗口,显示// MARK:注释的效果,即 Headers 为"My cool methods":
3)我还注意到,如果我单击代码中的一个方法,那么该方法将成为跳转栏中最右边的条目 . 为了让 MainWindowController(with a leading C icon) 成为跳转栏中最右边的条目,我必须单击我方法上方的空白区域 .
1046
在Objective-C中使用 Pragma mark - [SOME TEXT HERE] 通过线分离将几个函数组合在一起 .
17 回答
在Swift中添加
#pragma_mark
有三个选项:1)
// MARK: - your text here -
2)
// TODO: - your text here -
3)
// FIXME: - your text here -
注意:使用
-
添加分隔符在冒号和描述之间添加一行以插入分隔线 . 这有助于更好地组织代码 . 上面的代码和屏幕截图使用包含一行的MARK注释 .
//#MARK: - 文字方法(LINE)
//#MARK:文字方法(NO LINE)
这仅适用于MARK注释 .
文档
Apple关于Xcode Jump Bar的官方文档:Add code annotations to the jump bar
预览
代码 - Swift 4.2
Jump Bar - Xcode 10.0
Jump Bar - Xcode 9.4.1
你可以用
// MARK:
还有人讨论过,无论如何,自由使用课程扩展可能是更好的做法 . 由于扩展可以实现协议,您可以例如将所有表视图委托方法放在扩展中,并将代码分组到比
#pragma mark
能够更加语义的级别 .使用
要么
这将在pragma标记之上给出一行,使其更具可读性 .
为了方便添加
到你的代码片段 .
Alternate way -
以这种方式使用它
这不仅会添加标记(就像编译指示标记一样),而且还可以很好地隔离代码 .
您可能也对 Swift 4.2 / XCode 10 编译器指令感兴趣
和
当你真的不想错过任何东西时,它可能会有用 .
直到Xcode 5,预处理器指令
#pragma mark
已存在 .从Xcode 6开始,你必须使用
// MARK:
这些预处理器功能允许将一些结构带到源代码编辑器的功能下拉框中 .
一些例子 :
更新:添加截图'因为有些人似乎仍然有这个问题:
//MARK:
不适用于Xcode 6.3.2中的 seem . 但是,这就是我对 get it to work 的所作所为:1)代码:
2)在
jump bar
中,添加//MARK
:注释时似乎没有任何变化 . 但是,如果我单击跳转栏中最右边的名称,在我的情况下它会显示MainWindowController(with a leading C icon)
,则会显示一个弹出窗口,显示// MARK:注释的效果,即 Headers 为"My cool methods":3)我还注意到,如果我单击代码中的一个方法,那么该方法将成为跳转栏中最右边的条目 . 为了让
MainWindowController(with a leading C icon)
成为跳转栏中最右边的条目,我必须单击我方法上方的空白区域 .在Objective-C中使用
Pragma mark - [SOME TEXT HERE]
通过线分离将几个函数组合在一起 .在Swift中,您可以使用
MARK, TODO OR FIXME
实现此目的一世 . MARK:
//MARK: viewDidLoad
这将创建一个水平线,其功能分组在viewDidLoad下(如屏幕截图1所示)
II . TODO:
//TODO: - viewDidLoad
这将在TODO下分组功能: - viewDidLoad类别(如屏幕截图2所示)
III . FIXME:
//FIXME - viewDidLoad
这将在FIXME下分组功能: - viewDidLoad类别(如屏幕截图3所示)
Xcode 8现在按照以下方式处理它,并在方法下拉列表中显示如下:
Apple在Building Cocoa Apps的最新版本中声明,
#字符似乎仍然是你如何使用各种构建配置和类似的东西,但看起来他们试图在pragma的脉络中削减你对大多数预处理的需求,并完全转发你的其他语言功能 . 也许这是为了帮助Playgrounds和REPL的操作尽可能接近完全编译的代码 .
对于那些对使用扩展与pragma标记感兴趣的人(如第一条评论中所述),以下是如何从Swift工程师实现它:
它也不一定是最佳实践,但如果你愿意,这就是你如何做到的 .
我认为Extensions是一种更好的方式,而不是
#pragma mark
.使用_114262之前的代码:
使用
Extensions
后的代码:添加待办事项:插入带有前缀TODO:的注释 . 例如:// TODO:[你的待办事项] .
添加错误修复提醒:插入带前缀的注释整我: . 例如:// FIXME:[您的错误修复提醒] .
添加 Headers :插入带有前缀MARK:的注释 . 例如:// MARK:[您的部分 Headers ] .
添加分隔线:要在注释上方添加分隔符,请在注释的注释部分之前添加连字符( - ) . 例如:// MARK: - [您的内容] . 要在注释下添加分隔符,请在注释的注释部分后添加连字符( - ) . 例如:// MARK:[您的内容] - .
今天早上在WWDC上与Swift实验室的Apple工程师确认目前没有任何#pragma或同等版本,他们认为这是一个错误,它很快就会到来,所以我猜测测试2,我希望 .
无论如何,它就在它的路上 .
Xcode现在支持// MARK:,// TODO:和// FIXME地标来注释你的代码并在跳转栏中列出它们
专业程序员必须使用此标记才能获得良好的代码 . 这对团队合作也有好处 .
在Objective-C代码中,Xcode检测像
// MARK: - foo
这样的注释,它比#pragma
更容易移植 . 但这些似乎也没有被提起(但是?) .编辑:已在Xcode 6 beta 4中修复 .