数组里为什么最后要加个 nil 声明一个空元素?

数组里为什么最后要加个 nil 声明一个空元素?

NSMutableArray *arr = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",nil]; 可以执行。

NSMutableArray *arr = [[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3"]; 提示出错。

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

http://img1.sycdn.imooc.com/climg//58a2ca3b0001219806830054.jpg

后面的nil即还没有分配内存,此时在系统中的状态是nil。这个是系统所提供的方法,你将nil删了之后,在系统库中就找不到这个方法了,所以肯定是会报错的。

  • Tingo 提问者 #1
    非常感谢!
    2017-02-14 18:43:21
  • 是否可以将oc里面都object数组和字典理解成c中的链表?
    2017-02-22 05:45:44
  • Tender10 回复 chinanoahli #3
    两者还是有区别的,数组从栈中分配空间, 链表从堆中分配空间。
    2017-02-22 10:34:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师