は、次のコードを考えてみましょう。 if
ステートメントはobj
がNSString
クラスであるかどうかをチェックします。そうであれば、それはオブジェクトと追加された文字列をNSString *s
に割り当てます。これは正しく理解できますか?もしそうなら、あなたはまだそれを(NSString *)
にキャストしますか? if
ステートメントはすでにそれをチェックしていないので、型キャストを不要にしていませんか?基本Objective-Cの型キャストの質問
はそれだけで言うのは完全に罰金ではないでしょう:事前に
NSString *s = obj stringByAppendingString:@"xyzzy"];
感謝。
isKindOfClass: 'ベースのコーディングを行うことは非常に非典型的です。指定されたオブジェクト参照が実際にどのような型であるのかわからない場合、これは一般的に厄介なアーキテクチャを示します。 – bbum
私は参照してください。これはCS193Pスライドの一例です。あなたのコメントを心に留めておきます!ありがとう。 – cabaret
@bbum私はそう言っていないでしょう。 'isKindOfClass:'が意味を成す多くの正当なユースケースがあります。例えば。あるメソッドは、呼び出し側が未知のクラスの引数を提供する必要があります。その場合、メソッド定義で 'id'" class "を使用し、それに応じて異なる型を扱うために' isKindOfClass: 'に頼ります。 –