iOS 对 nil 发送消息

  • 字符串为 nil, 对其发送消息查看会发生什么事情


    对空对象发送消息
  • 比如 NSArray *array = nil; array.count == 0
    是对 nil 发送消息的结果
  • 其中, nil == 0 …. 不过 swift 就纠正了这个.
  • 对 nil 发送消息是安全的 … 如果这个消息有返回值, 返回值类型是 int 、float、char *、NSObject 及其子类 等, 返回的好像都是 0, 如果是结构体,那么结构体内的各个字段都为 0
    NSString *string = nil; ( nil == 0)
    int val = string.length;
    其实就是 int val = [nil length];
    对 nil 发送一个 length 消息, 返回 0
    所以就是 int val = 0;
    所以一定是 0
    到了这里
    string == nil == 0, val == 0
    

NULL 和 nil 区别和联系

  • nil: 指向oc中对象的空指针
  • NULL: 指向其他类型的空指针,如一个c类型的内存指针
    区别:
    都代表空, 做判断时都是NO 区别在于nil为NS的范畴, 当向nil发送消息时, 不做任何操作, 但是当向 nul l发送消息时(比如访问指针存在非法访问), 直接crash
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,356评论 0 33
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,393评论 30 472
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,500评论 18 399
  • -------艳阳心悦沙龙.塔罗第26期后记 进了银都花园8栋503的后花园。茶室里,她和她正笑得欢,原来这俩人练...
    雯霞如煜阅读 4,253评论 3 4
  • (一)不再急迫地想要证明自己是对的 大帅老师也是个旅行的爱好者,兼职沪上某个一直号称“街道500强”旅行公司的签约...
    邻国日本阅读 3,838评论 0 0

友情链接更多精彩内容