次のように作成された NSMutableArray を取得しました。
NSMutableArray *expr = [[NSMutableArray alloc] init];
[expr addObject:[NSNumber numberWithDouble:3.0]];
[expr addObject:@"+"];
[expr addObject:@"%x"];
[expr addObject:@"*"];
[expr addObject:[NSNumber numberWithDouble:4.0]];
後で、それを として知られているメソッドに渡し(id) anExpression、イントロスペクションを使用してこれがどの種類のオブジェクトであるかを判断しようとします。
if ([[anExpression class] isEqual:[NSMutableArray class]]) {
// Some code I only want to do if it IS a Mutable array
}
しかし、それは false を返し、私のコードは実行されません。私は試してみNSLogまし[NSMutableArray class]たが、それは私に与えますNSMutableArray。それほど驚くことではありません。
しかし、 のクラスを試してみるとNSLog、exprが得られ__NSArrayMます。
どうしてこれなの?これを回避するにはどうすればよいですか?
私はObjective-Cにあまり詳しくないので、説明してください。理解できないことをするのは好きではありません。