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

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

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

提示信息如下:

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

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

报错界面如下:

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

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

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

1、方法解释:数组的容量一经定义就固定的,不能动态的添加元素,要想添加就要重新定义个更大容量的数组,再把原数组复制过去。

2、具体方法:

#include <iostream>

#include <vector>

#include <string>

using namespace std

int main

vector<string>vecStr;

vecStr.push_back("x1")。

扩展资料:

程序结构

C语言的模块化程序结构用函数来实现,即将复杂的C程序分为若干模块,每个模块都编写成一个C函数,然后通过主函数调用函数及函数调用函数来实现一大型问题的C程序编写,因此常说:C程序=主函数+子函数。

因此,对函数的定义、调用、值的返回等中要尤其注重理解和应用,并通过上机调试加以巩固。

判断语句(选择结构):

if 语句:“如果”语句;if—else 语句:“若?(则)?否则?”语句;switch 语句:“切换”语句;switch—case:“切换—情况”语句。

循环语句(循环结构):

while 语句:“当?”语句;do—while 语句:“做?当?(时候)”语句;for 语句:条件语句(即“(做)?为了?”语句)。

跳转语句(循环结构:是否循环):

goto 语句:“转舵”语句,也称“跳转”语句;break 语句:“中断”(循环)语句,即结束整个循环;continue 语句:“继续”语句(结束本次循环,继续下一次循环);return 语句:“返回”语句。

参考资料来源:百度百科--数组元素

参考资料来源:百度百科--c语言


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11771435.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存