我正在计算两个字符串。有平等的。 isEqualToString:
会返回NSOrderedDescending
。
我认为isEqualToString:
会返回NSOrderedSame
。有人可以向我解释为什么会这样吗?
示例案例 ...
NSString *myString = @"1";
if ( [myString isEqualToString:@"1"] == NSOrderedSame ) {
// is NSOrderedSame
}
自写完问题以来,我知道我应该使用compare:
。它将返回NSOrderedSame
。但我想知道,为什么会发生这种情况。
感谢
罗斯
答案 0 :(得分:6)
它不会返回NSOrderedDescending
,而是返回YES
。检查该方法的返回类型!
- (BOOL)isEqualToString:(NSString *)aString
NSOrderedDescending
是NSComparisonResult
,由于其声明,其值恰好为1
:
enum {
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
};
typedef NSInteger NSComparisonResult;
不要混用和匹配类型!