为什么NSString中的NSDecimalNumber?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么NSString中的NSDecimalNumber?相关的知识,希望对你有一定的参考价值。
我有一个被解析为NSString
的对象,当我查出类名时,它说NCDecimalNumber
。为什么? (我理解NSString
是一个集群,但仍然不明白为什么NSDecimalNumber
将成为集群背后的一部分)
以下帖子提出了类似的问题,但没有人回答原因。 Converting NSDecimalNumber to NSString
答案
这听起来像解码器将数字解码为NSDecimalNumber
(和字符串到NSString
s)。
请记住,Objective-C是C,因此您可以有效地将任何内容分配给指针,由您来确保类型对应。这就是为什么你可以将NSNumber
类型的对象分配给声明为NSString*
类型的指针。如您所见,类集群与此无关。
因此,在将对象分配给变量之前,应该检查类,或者,只需将对象分配给类型为id
(可以容纳任何对象)的指针。
如果您需要根据类型处理对象,可以执行以下操作:
id obj = //...
if ( [obj isKindOfClass: [NSString class]] ) {
}
else if ( [obj isKindOfClass: [NSNumber class]] ) {
}
else {
}
另一答案
试着用这个:
NSString *string = [[NSStrig alloc] initWithFormat:@"%@", [DecimalNumber stringValue]];
希望这对你有所帮助。
以上是关于为什么NSString中的NSDecimalNumber?的主要内容,如果未能解决你的问题,请参考以下文章
NSMutableArray 中的 NSString 与 myString 上的不同
如何在信息 plist 中的 Key 下保存 NSString?