1. ホーム
  2. ios

[解決済み] Java の toString() の Swift 版

2022-10-20 12:41:33

質問

Java の Swift に相当するものは何ですか? toString() を使用してクラスインスタンスの状態を表示しますか?

どのように解決するのですか?

この description プロパティは、あなたが探しているものです。 これは、オブジェクトを含む変数を表示するときにアクセスされるプロパティです。

を追加することができます。 description というプロトコルを採用することで、自分のクラスに CustomStringConvertible を実装し、さらに description プロパティを実装しています。

class MyClass: CustomStringConvertible {
    var val = 17

    public var description: String { return "MyClass: \(val)" }
}

let myobj = MyClass()
myobj.val = 12
print(myobj)  // "MyClass: 12"

description を呼び出すときにも使われます。 String のコンストラクタを呼び出すときにも使われます。

let str = String(myobj)  // str == "MyClass: 12"

これはインスタンス記述にアクセスするための推奨される方法です( myobj.description を実装していないクラスでは動作しません。 CustomStringConvertible )