isa
Objective-C では、メンバー変数に代入することで、実行時にオブジェクトの動的型を変更できます。
id object = ...;
object->isa = [SomeClass class];
これは未定義の動作ですか?私は現在、これを他の何かのためのクラッジとして行っており、機能しているように見えますが、この方法で行うのはとても汚いと感じています. 私が設定している新しいクラスはメンバー変数を追加しません。1 つのメソッドをオーバーライドして新しいメソッドを追加するだけなので、クラス サイズは同じです。オブジェクトのサイズを変更すると、非常に悪い結果になる気がします。