我可以在任何需要NSNumber的地方使用NSDecimalNumber吗?

时间:2010-03-14 04:06:46

标签: objective-c cocoa cocoa-touch nsnumber nsdecimalnumber

NSDecimalNumber是NSNumber的子类,据我所知,它实现了NSNumber实例所期望的所有NSNumber方法。

鉴于此,是否可以将NSDecimalNumbers赋予任何期望NSNumber的代码?

唯一可能的问题可能是检查参数是否为NSNumber实例的代码,但由于NSNumber是类集群,因此这样的代码必须检查实例是子类 NSNumber和NSDecimalNumber实例应该通过相同的测试。

1 个答案:

答案 0 :(得分:7)

  

唯一可能的问题可能是检查参数是NSNumber实例的代码,但由于NSNumber是一个类集群,这样的代码必须检查实例是NSNumber的子类,NSDecimalNumber实例应该通过相同的测试。

这就是isKindOfClass:的用武之地,尽管您可能更愿意测试对象是否会响应integerValue之类的消息。