Швидкий: Розуміння // МАРК


137

Яка мета написання коментарів у Swift як:

// MARK: This is a comment

Коли ви також можете зробити:

// This is a comment

Що // MARKдосягає?

Відповіді:


251

// MARK:І // MARK: -синтаксис функцій Swift ідентично #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, імовірно. Хоча, я можу легко уявити, що інші ІДЕ потенційно можуть проявляти подібну поведінку.
nhgrif

Ви також можете поставити дефіс після тексту, // MARK: /Delegate impl. -щоб позначити кінець розділу, а чому б і не обидва:// MARK: - Attention! -
Андреас


-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() {

}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.