NSString可以被视为NSCFDecimal吗?

时间:2011-05-06 07:52:51

标签: ios nsstring foundation nsobject nsdecimalnumber

我想使用- (BOOL)isEqualToString:(NSString *)aString比较两个字符串 这些字符串是使用包含数字字符的-(id)objectForKey:(id)aKey的字典中的对象。

当我使用[object class]检查这些字符串的类时,无论我如何将它们转换为NSString *,它都会显示它们是NSCFDecimal个数字,需要使用{}进行比较==。如果我想对它们使用isEqualToString,则会引发错误。

任何人都可以解释为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

Objective-C是高度动态的语言。无论您声明什么类型的变量,只有运行时才有意义。例如:

NSString *str = [NSNumber numberWithInt:5];

str - 是NSNumber。

如果你想将NSInteger(对于exmaple)与字符串进行比较,你应该这样做:

NSInteger num = 9;
NSString *stringWithNumber = [NSString stringWithFormat:@"%d", num];
if ([stringWithNumber isEqualToString:yourString])
{ ... }