对于相等的字符串,NSOrderedDescending而不是NSOrderedSame,为什么?

Ros*_*oss 1 iphone objective-c

我正在考虑两个字符串.有平等的.isEqualToString:回报NSOrderedDescending.

我以为isEqualToString:会回来NSOrderedSame.有人可以向我解释为什么会这样吗?

示例案例 ......

 NSString *myString = @"1";

 if ( [myString isEqualToString:@"1"] == NSOrderedSame ) {
    // is NSOrderedSame
 }
Run Code Online (Sandbox Code Playgroud)

自从写出我知道我应该使用的问题compare:.它会回来NSOrderedSame.但我想知道,为什么会发生这种情况.

由于
罗斯

Car*_*rum 6

它没有返回NSOrderedDescending,它返回YES.检查该方法的返回类型!

- (BOOL)isEqualToString:(NSString *)aString
Run Code Online (Sandbox Code Playgroud)

NSOrderedDescending是一个NSComparisonResult,并且恰好具有1由于其声明的值:

enum {
   NSOrderedAscending = -1,
   NSOrderedSame,
   NSOrderedDescending
};
typedef NSInteger NSComparisonResult;
Run Code Online (Sandbox Code Playgroud)

不要混用和匹配类型!