0

文字列に含まれる型にオブジェクトをキャストする必要がありますが、それが可能かどうかわかりません。

私のクラスは文字列です:

NSString *myClass = @"User";

この型でキャストしたいオブジェクトがあります。

object = (myClass)object; // Doesn't work
object = (myClass *)object; // Doesn't work

どうやってやるの ?

4

1 に答える 1

4

これを行う意味はありません — オブジェクトの静的型はコンパイル時にのみチェックされ、これを行う方法があったとしても実行時にのみ発生する可能性があります (文字列などのオブジェクトは実際には実行時まで存在しないため)。

オブジェクトをあるクラスから別のクラスに変更しようとしている場合、それはとにかくうまくいきません — あるポインター型から別の型へのキャストは、それが指すデータの型についてコンパイラーに嘘をつくだけであり、実際にはオブジェクトを変更しません。データ。オブジェクトをあるタイプから別のタイプに変換するには、古いオブジェクトからデータを取得し、目的のタイプの新しいオブジェクトを作成するメソッドまたは関数が必要です ( dataUsingEncoding:NSString から NSData に変換する NSString など)。

しかし、動的に選択されたクラスがあり、そのクラスのインスタンスに変数を与えるために何らかのタイプが必要な場合は、id(可能なすべてのクラスが同じメッセージに応答する場合は、おそらくプロトコルを使用して) を使用できます。

于 2012-04-29T18:02:48.710 に答える