0

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

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

谁能解释为什么会这样?

4

1 回答 1

0

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

NSString *str = [NSNumber numberWithInt:5];

str - 是 NSNumber。

如果您想将 NSInteger(例如)与字符串进行比较,您应该这样做:

NSInteger num = 9;
NSString *stringWithNumber = [NSString stringWithFormat:@"%d", num];
if ([stringWithNumber isEqualToString:yourString])
{ ... }
于 2011-05-06T08:04:41.967 回答