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

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

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

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

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

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

芒果iOS开发之NSComparisonResult比较结果相关推荐

  1. 芒果iOS开发之AFNetworking3.0.4使用指南

    前几天发现iOS9.xcode7之后NSURLConnection的API被弃用了,取而代之的是NSURLSession,看到这我首先想到了AFNetworking,因为工程的所有网络请求都是基于AF ...

  2. 芒果iOS开发之Swift教程05-Swift字符串和字符

    [主要内容] 1. 字符串字面量 2. 初始化空字符串 3. 字符串可变性4. 字符串是值类型 5. 使用字符 6. 连接字符串和字符 7. 字符串差值 8. Unicode 9. 计算字符数量 10 ...

  3. 芒果iOS开发之duplicate symbols for architecture x86_64错误

    [主要内容:] 1. 错误提示 2.分析错误原因 3. 解决问题办法 一.错误提示 在我们写代码过程中可能会经常遇到这样一个错误: <span style="font-size:32p ...

  4. iOS开发之AVKit框架使用

    2019独角兽企业重金招聘Python工程师标准>>> iOS开发之AVKit框架使用 一.引言 在iOS开发框架中,AVKit是一个非常上层,偏应用的框架,它是基于AVFounda ...

  5. (0045) iOS 开发之MBProgressHUD 源码学习

    (0045) iOS 开发之MBProgressHUD 源码学习 第一部分:学习所得和分析线程 1.  学习到了kvo 的使用 和屏幕方向的旋转判断. 2. 如果调起这个 HUD 的方法不是在主线程调 ...

  6. (0016)iOS 开发之Mac上Navicat Premium 创建远程连接和本地连接

    1.下载安装 (百度云盘里面有安装文件和注册机) 链接: https://pan.baidu.com/s/1kVG1k71 密码: mr5g 破解教程看这篇博客:http://blog.csdn.ne ...

  7. 李洪强iOS开发之RunLoop的原理和核心机制

    李洪强iOS开发之RunLoop的原理和核心机制 搞iOS之后一直没有深入研究过RunLoop,非常的惭愧.刚好前一阵子负责性能优化项目,需要利用RunLoop做性能优化和性能检测,趁着这个机会深入研 ...

  8. IOS开发之MD5加密和钥匙串的使用-oc

    IOS开发之MD5加密和钥匙串的使用-oc 源码在我的主页,md5加密是用户登录安全的一个保障.不可逆的,可以暴力破解的. // // ViewController.m // MD5演练 // // ...

  9. IOS开发之CALayer基本属性和使用

    IOS开发之CALayer基本属性和使用 // // ViewController.m // CALayer // // Created by 鲁军 on 2021/2/21. //#import & ...

最新文章

  1. 数据备份 另一服务器_狡兔三窟-数据备份
  2. DHTML【7】--CSS
  3. java中native_java中的native关键字
  4. VUE 入坑系列 一 双向绑定
  5. 生信宝典之傻瓜式 (五) - 文献挖掘查找指定基因调控网络
  6. Git系列笔记之一:git的简介及基本配置
  7. Android的TextView部分文字点击切换颜色(ClickableSpan)
  8. 力扣——合并两个有序数组
  9. python的运行方式有哪两种_Python基础:Python运行的两种基本方式
  10. getWriter() has already been called for this response
  11. Axure9学习笔记1:介绍及安装
  12. 【电脑故障】打印机驱动程序无法使用且print spooler错误1068
  13. c语言 结构体数组嵌套另一个结构体数组怎么初始化?,如何初始化结构体数组(内嵌结构体)...
  14. 开源项目之开源的2D游戏引擎 HGE
  15. 实战7:机器学习实战之 随机森林、逻辑回归、SVM算法方法进行垃圾邮件过滤分类 代码+数据
  16. 函数凹凸性证明中点函数值和函数值中点的关系
  17. 矿泉水瓶勿重复使用易得癌病
  18. 小程序实现地图导航功能
  19. sklearn中predict_proba用法(注意和predict的区别)
  20. Re-id多粒度网络(MGN)的PPT汇报总结

热门文章

  1. linux netstat命令:网络状态查看命令
  2. 第二章 离散时间信号和系统的时域描述分析 2.2.2 线性时不变系统
  3. 基于51单片机的羽毛球计分器设计
  4. SI512国产13.56MHz低功耗NFC前端芯片替代PN532/PN512
  5. altium designer利用向导画封装库详解
  6. 区块链软件开发公司 区块链的基本原理
  7. excel 文件工作表保护密码破解
  8. Excel公式提取数据
  9. wifi无线认证,802.1x认证上网方式详解
  10. 13种Java核心技术