我想使用- (BOOL)isEqualToString:(NSString *)aString
比较两个字符串
这些字符串是使用包含数字字符的-(id)objectForKey:(id)aKey
的字典中的对象。
当我使用[object class]
检查这些字符串的类时,无论我如何将它们转换为NSString *
,它都会显示它们是NSCFDecimal
个数字,需要使用{}进行比较==
。如果我想对它们使用isEqualToString
,则会引发错误。
任何人都可以解释为什么会这样吗?
答案 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])
{ ... }