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

当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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,867评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,805评论 1 32
  • 越是剩女的日子越是悲观。 看着周围的朋友,一个接着一个得结婚生子,只剩下自己独自徘徊不定,周围的问...
    禾东秀阅读 3,596评论 0 0
  • 时常有这样的幻想:如果我现在的生活更加的优渥,是否我可以更加的优秀?这种疑问并不是对在对自己当下生活的抱怨,而是对...
    WildeYoung阅读 3,610评论 0 2
  • Xcode的代码片段(Code Snippets)创建自定义的代码片段,当你重用这些代码片段时,会给你带来很大的方...
    SuAdrenine阅读 4,968评论 0 1