美文网首页IOS技术精华iOSiOS Developer
iOS开发之NSComparisonResult比较结果

iOS开发之NSComparisonResult比较结果

作者: 逆行风 | 来源:发表于2016-12-28 15:22 被阅读1539次

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

    [objc]view plaincopy

    print?

    - (NSComparisonResult)compare:(NSString*)string;

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

    [objc]view plaincopy

    print?

    typedefNS_ENUM(NSInteger, NSComparisonResult) {

    [objc]view plaincopy

    print?

        NSOrderedAscending = -1L,

    [objc]view plaincopy

    print?

        NSOrderedSame,

    [objc]view plaincopy

    print?

        NSOrderedDescending

    [objc]view plaincopy

    print?

    };

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

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

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

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

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

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

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

    希望这些结论能给大家一些帮助,最后希望转载的时候注明出处,尊重作者的劳动成果。

    相关文章

      网友评论

        本文标题: iOS开发之NSComparisonResult比较结果

        本文链接:https://www.haomeiwen.com/subject/komyvttx.html