Разметка и документирование кода

В Xcode есть возможность добавлять в код специальные маркеры:

Первым чаще всего обозначают группы элементов, а двумя остальными — требующие доработки места.

import Foundation

class Cat {
    // MARK: - Properties
    // MARK: required
    let breed: String!
    var age: UInt!
    
    // MARK: optional
    let sex: String?
    
    // MARK: - Initialization
    init() {
        breed = "siamese"
        age = 1
        
        // FIXME: Sex setting
        sex = nil
    }
    
    // MARK: - Main
    func walk() {
        print("Walk")
    }
    
    // TODO: Write a logic
    func meow() {
        print("Meow...")
    }
}

В панели иерархии это выглядит так: Xcode markup sample

Кроме разметки, редактор также позволяет документировать код Markup-языком. Возможности его достаточно обширны и включают наряду с базовым описанием объектов, параметров и возвращаемых значений, различные заголовки, списки, ссылки, вставки кода, изображений и многое другое.

Для наглядности, пример с использованием основных команд:

import Foundation

/**
 The `Utility` class provides various useful functions and values.
*/
class Utility {
    /**
     Fixes the string representation of number.
     
     ```
     1.0 -> 1 (not 1.0)
     0.00003 -> 0.00003 (not 3e-05)
     ```
     
     - parameters:
        - doubleValue: The number to be represented as the string.
     
     - returns: The string representation of number.
    */
    class func doubleToString(doubleValue: Double) -> String {
        var stringValue: String
        
        if trunc(doubleValue) == doubleValue {
            stringValue = "\(Int(doubleValue))"
        } else if abs(doubleValue) < 0.0001 {
            stringValue = "\(doubleValue + (doubleValue.isSignMinus ? -1 : 1))"
            stringValue = stringValue.stringByReplacingOccurrencesOfString("1.", withString: "0.")
        } else {
            stringValue = "\(doubleValue)"
        }
        
        return stringValue
    }
}

Теперь эта информация будет отображаться во всплывающей подсказке и панели помощи: Xcode documentation sample