今天在看一个bug,原来是之前同事写的代码用compare比较两个字符串,(我对这个compare也是理解有误),看了文档,原来是这样的:
/* In the compare: methods, the range argument specifies the subrange, rather than the whole, of the receiver to use in the comparison. The range is not applied to the search string. For example, [@"AB" compare:@"ABC" options:0 range:NSMakeRange(0,1)] compares "A" to "ABC", not "A" to "A", and will return NSOrderedAscending.
*/
- (NSComparisonResult)compare:(NSString *)string;
如果没有制定比较的范围,那么这个compare只会默认比较第一个字符,第一个字符大于第二个字符,也就是说即便是[”8“ compare ”10“ ]也会输出降序(心里想的是升序);
反之,第一个字符小于第二个字符,那么就输出升序。看下图: