1

Xcode デバッガーでオブジェクトdebugDescriptionの値を表示するときに、プロパティをオーバーライドしようとしています。NSDate

私の延長コード:

import Foundation

extension NSDate {
   public override var debugDescription: String {
      return "FOOFOOFOO" 
   }

   public func yeah() -> String {
      return "yeah!"
   }
}

yeah関数を呼び出すことができprint、デバッガーの出力で正常に機能するため、拡張コードを含むファイルがテスト プロジェクトのターゲットに含まれていることを確認しました。しかし、私はdebugDescriptionプロパティを使用するように取得することはできません。

私の実際の目標は、以前に Objective-C で行ったことを実行することです (詳細については、この質問を参照してください) が、Swift でそれを行う方法にこれまで苦労しています。

4

1 に答える 1

4

これらは Swift の 2 つの別個のプロトコルです

struct S : CustomStringConvertible, CustomDebugStringConvertible {
    var description: String {
        return "description"
    }
    var debugDescription : String {
        return "debug description"
    }
}

let s = S()
print(s)        // description
debugPrint(s)   // debug description

...レオに感謝します!!!

import Foundation
extension NSDate: CustomDebugStringConvertible {
    public override var debugDescription: String {
            return "FOO"
    }
}

debugPrint(NSDate()) // FOO
于 2015-12-15T19:20:16.430 に答える