C ++のdynamic_castに相当するObjective-Cはありますか?
これを使用して偽造することができます:
MyClass *safeObject = [object isKindOfClass: [MyClass class]]
? (MyClass *)originalObject : nil;
しかし、頻繁に入力する必要がない場合でも、これは入力するコードがたくさんあります。
私は少し錆びているので、これは正しくないかもしれませんが、C++での同等のものは次のようになると思います。
MyClass safeObject = dynamic_cast<MyClass>(orginalObject);
ここでのコンテキストは、パラメーターがより一般的なクラスのタイプとして定義されているブロックですが、このブロックでは、それが特定のサブクラスであることを「知っています」。(MyClass *)originalObject
それにもかかわらず、私はそれを盲目的にキャストして、理論的に起こりうるエラーを無視したくありません。
明確にするために、私はが大好きですがdynamic_cast
、このケースも安全に処理するための別のアプローチに満足しています。