👌

ヘッダごとの情報をXcodeで出力したいときに使えるカスタムクラスの作成

2021/03/29に公開

概要

  • Playground等でヘッダ毎に情報を出力したい場合に使えそうなExampleクラスを定義する

コード

  • 各処理の前に一律で何かしらの処理をしたい場合はbeforeEachにClosureを定義してやれば良い
public class Example {
    public static var beforeEach: (()->Void)? = nil
    
    public static func of(_ description: String, action: ()->Void) {
        beforeEach?()
        printHeader(description)
        action()
    }
    
    private static func printHeader(_ message: String) {
        print("\nℹ️ \(message):")
        let length = Float(message.count + 3) * 1.2  // Separator line
        print(String(repeating: "—", count: Int(length)))
    }
}

Example.of("SampleTask1") {
    print("SampleTask1 is processing...")
}

Example.of("SampleTask2") {
    print("SampleTask2 is processing...")
}
  • 出力例
ℹ️ SampleTask1:
————————————————
SampleTask1 is processing...

ℹ️ SampleTask2:
————————————————
SampleTask2 is processing...

出典

  • Realm: Building Modern Swift Apps with Realm DatabaseのChapter7

Discussion