1. ホーム
  2. アイオス

[解決済み】(Swiftで)オブジェクトの型を調べるには?)

2022-03-31 06:52:20

質問

プログラムを理解しようとするとき、あるいはある種のコーナーケースにおいて、何かがどのような型であるかを知ることは有用である。デバッガが型情報を表示してくれるのは知っているし、そういう状況では型推論に頼って型を指定しないで済ませることもできる。でも、それでも、Pythonの type()

dynamicType ( この質問 )

更新しました。 は、最近のSwiftのバージョンで変更されています。 obj.dynamicType は、動的な型のインスタンスではなく、型への参照を与えるようになりました。

これが一番期待できそうなのですが、今のところ実際の型がわからないのです。

class MyClass {
    var count = 0
}

let mc = MyClass()

# update: this now evaluates as true
mc.dynamicType === MyClass.self

また、クラスリファレンスを使って新しいオブジェクトをインスタンス化しようとしましたが、これは する を追加しなければならないというエラーが発生しました。 required のイニシャライザを使用します。

が動作します。

class MyClass {
    var count = 0
    required init() {
    }
}

let myClass2 = MyClass.self
let mc2 = MyClass2()

まだ、任意のオブジェクトの型を実際に発見するための小さな一歩に過ぎないが

編集 : 今となっては無関係な詳細を相当数削除しました。興味があれば編集履歴を見てください :)

解決するには?

Swift 3 のバージョン。

type(of: yourObject)