我有一个 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
ingexpr
的课程时,我得到了__NSArrayM
.
为什么是这样?我应该如何解决这个问题?
我对Objective-C不太熟悉,所以请解释一下。我不喜欢做我不明白的事情。