我有一些代码,我将在其中接收未知类型的对象。它可以是一个NSString
, , 一个包含在 a或其他类NSNumber
中的标量:NSValue
-(void) doSomethingWith:(id) value {
if ( <test-for-NSValue> ) {
// Do something with a NSValue
} else {
// Do something else
}
}
我需要确定 NSValue 中哪里有标量类型。
问题是识别一个 NSValue 包装的标量与一个 NSNumber。由于 NSNumber 继承自 NSValue 并且两者都是类集群,所以我很难将它们整理出来。
所以:
[value isKindOfClass:[NSValue class]]
... 将 NSNumbers 视为 NSValues。
[value isMemberOfClass:[NSValue class]]
...不识别 NSValues 因为实例是具体的子类型。
任何人都知道如何做到这一点?