NSDecimalNumber是NSNumber的子类,据我所知,它实现了NSNumber实例所期望的所有NSNumber方法。
鉴于此,是否可以将NSDecimalNumbers赋予任何期望NSNumber的代码?
唯一可能的问题可能是检查参数是否为NSNumber实例的代码,但由于NSNumber是类集群,因此这样的代码必须检查实例是子类 NSNumber和NSDecimalNumber实例应该通过相同的测试。
答案 0 :(得分:7)
是
唯一可能的问题可能是检查参数是NSNumber实例的代码,但由于NSNumber是一个类集群,这样的代码必须检查实例是NSNumber的子类,NSDecimalNumber实例应该通过相同的测试。
这就是isKindOfClass:
的用武之地,尽管您可能更愿意测试对象是否会响应integerValue
之类的消息。