芒果iOS开发之NSComparisonResult比较结果

  在学习NSString的时候,可能会经常遇到比较两个字符串的大小,系统已经提供了字符串比较的函数:

[objc] view plain copy
 print?
  1. <span style="font-size:24px;">- (NSComparisonResult)compare:(NSString *)string;  
  2. </span>  

           这个方法可以比较两个字符串的大小,这个方法的返回值类型是NSComparisonResult类型。我们还需要进入NSComparisonResult内部看看究竟是什么。

[objc] view plain copy
 print?
  1. typedef NS_ENUM(NSInteger, NSComparisonResult) {  
[objc] view plain copy
 print?
  1. <span style="white-space:pre">    </span>NSOrderedAscending = -1L,  
[objc] view plain copy
 print?
  1. <span style="white-space:pre">    </span>NSOrderedSame,  
[objc] view plain copy
 print?
  1. <span style="white-space:pre">    </span>NSOrderedDescending  
[objc] view plain copy
 print?
  1. };  

             从上边可以看出NSComparisonResult是一个枚举类型,他有三个成员,枚举成员的值是递增的,系统给出了NSOrderedAscending的值是-1,NSOrderedSame的值就是0,NSOrderedDescending的值是1。 

NSOrderedSame比较容易理解就是两个字符串相等。一开始我的疑惑点NSOrderedAscendingNSOrderedDescending。我翻译了一下Ascending上升的意思Descending下降的意思。但是仅从字面意思还是无法知道到底比较的两个字符串哪个大哪个小。

         然后我就去百度搜索看了很多博客,很多知识给出了自己的结论,但是并没有是什么证据去证明自己的结论,所以不能让人很信服。

         后来感觉网上的答案都没有说服力,于是我决心去自己找找答案。这个时候我想起了苹果的API帮助文档,这个文档是苹果官方给出的,苹果给出的东西肯定具有权威性和说服力。于是我就去翻阅API文档。下边是我找到的答案,如图:

芒果iOS开发之NSComparisonResult比较结果

答案我已经在图上给大家用红圈圈出来了。

NSOrderedAscending的意思是:左边的操作对象小于右边的对象。

NSOrderedDescending的意思是:左边的操作对象大于右边的对象