在OC中 数组元素以nil结束
NSArray内部应该是通过链表实现,每增加一个元素就增加一个节点,每删除一个元素就删除一个节点。这也就是OC数组无需要预先申请空间的原因。nil就存在于最后一个节点,它的下一个节点的指针指向nil。
也就是nil是数组对象存储空间中,但不计算为数组的元素。
假如在数组中插入nil元素则系统会自动认为结束 后面的元素不计入数组内。
举例:
NSArray *array = [NSArray arrayWithObjects:@"1",@"2",nil,@"3",@"4", nil];
NSLog(@"%@",array);
(
1,
2
)