Swift:了解// MARK


137

在Swift中编写注释的目的是:

// MARK: This is a comment

当您还可以执行以下操作时:

// This is a comment

有什么// MARK成就?

Answers:


251

Swift中的// MARK:// MARK: -语法与#pragma mark和相同#pragma mark -在Objective-C的语法。

使用此语法时(加号// TODO:// FIXME:)时,您可以获得一些额外的信息以显示在快速跳转栏中。

考虑以下几行源代码:

// MARK: A mark comment lives here.

func isPrime(_ value: UInt) -> Bool { return true }

在此处输入图片说明

作为参考,快速跳转栏在Xcode的顶部:

在此处输入图片说明

它的存在主要是为了帮助快速浏览文件。

请注意,破折号(// MARK: -)会显示一条漂亮的分隔线。考虑以下MARK评论:

// MARK: - A mark comment lives here.

在此处输入图片说明

该菜单中粗体选项上方的深灰色分隔线来自破折号。

另外,我们可以通过在破折号后不加任何文本来实现不带注释的分隔线:

// MARK: -

在此处输入图片说明

如前所述,// TODO:// FIXME:评论也将出现在这里。

// MARK: - Prime functions

func isPrime(_ value: UInt) -> Bool {
    // TODO: Actually implement the logic for this method
    return true
}

func nthPrime(_ value: UInt) -> Int {
    // FIXME: Returns incorrect values for some arguments
    return 2
}

在此处输入图片说明

  • FIXME会显示一个创可贴图标,帮助他们脱颖而出。
  • MARK图标看起来像一个目录
  • TODO图标看起来更像一个清单

单击快速跳转栏中的任何一行,即可直接转到源代码中的该行。


此功能特定于Swift / Objective-C或Xcode吗?
ma11hew28

Xcode,大概。虽然,我可以轻松想象其他IDE可能会表现出类似的行为。
nhgrif

您也可以在文字“”之后加上连字符// MARK: /Delegate impl. -,以标记节的结尾,或者为什么不两者都用:// MARK: - Attention! -
Andreas

7

MARK只需在跳转栏中添加一个可视MARK,如下所示:

// MARK: Core Data Stack

在此处输入图片说明


-5

您可以随时使用

// MARK: - Properties
var name: String

// MARK: - Methods
func display() {
}

init(name: String, rollNumber: Int) {

    // TODO: add configuration code
    self.name = name
}

// FIXME: bug XYZ
func fixBug() {

}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.