美文网首页
OC的数组中添加 nil 对象会有什么问题

OC的数组中添加 nil 对象会有什么问题

作者: 打碟的DJ | 来源:发表于2018-06-01 07:55 被阅读20次

当OC的可变数组(NSMutableArray)添加 nil 对象时,首先会弹出警告 “Null passed to a callee that requires a non-null argument”,也就是说不能数组不能传递非空参数。

提示信息如下:


image.png

运行后会崩溃,崩溃信息如下:


image.png

当OC的不可变数组(NSArray)字面量方法添加nil对象时,会报错“Collection element of type 'void *' is not an Objective-C object”
报错界面如下:


image.png

当用arrayWithObjects/initWithObjects时,末尾都会有个nil,因为数组元素不确定,因此要加nil,同时此时的nil也是数组结束的标识符


image.png

当这种写法的时候 NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil,@"3"]; 会提示“Missing sentinel in method dispatch”,也就是提示缺少nil来结束数组


image.png

当fix后会变成如下,但是数组array是以第一个nil结束的,也就是说3并不是数组中的元素


image.png

相关文章

  • OC的数组中添加 nil 对象会有什么问题

    当OC的可变数组(NSMutableArray)添加 nil 对象时,首先会弹出警告 “Null passed t...

  • iOS开发中崩溃的几种情况

    数组越界 1.数组中取值时越界2.往数组中添加nil 野指针 出现野指针对情况1.用assign修饰一个OC对象2...

  • Objective-C Tips

    1、oc中各种nil。 nil用来表示空对象,数组、字典结束判断 Nil用于类的空指针 NSNull用来标识什么都...

  • iOS中类和对象,nil/Nil/NULL的区别

    nil、Nil、NULL的区别 nil:指向oc中对象的空指针,针对对象。 Nil:指向oc中类的空指针,针对类。...

  • Swift中Optional(可选项)的理解

    为什么会有Optional OC中没有Optional类型,OC中所有对象变量都可以为nil,因为nil是无类型的...

  • nil Nil NULL NSNull

    nil:指向oc中对象的空指针(对象),nil是一个指向不存在对象的指针 Nil:指向oc中类的空指针 NULL:...

  • OC中的“空”

    原文:关于OC中的nil, NULL详解OC中给空对象发送消息程序会Crash吗? 各种“空” 关于nil nil...

  • Swift学习(四)---Optional

    一、Swift中可选项的出现 为了解决OC中的nil问题 OC中nil为无类型的指针 OC中的数组、字典、集合都不...

  • iOS常见崩溃

    数组越界 1.数组中取值时越界 2.往数组中添加nil 野指针 出现野指针的情况 1.用assign修饰一个OC对...

  • NSObject——概念原理

    1、野指针 2、僵尸对象 3、nil/Nil/NULL/NSNull的区别 nil:指向oc中对象的空指针 Nil...

网友评论

      本文标题:OC的数组中添加 nil 对象会有什么问题

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