
NSMutableArray * arr = [NSMutableArray array]
//遍历数组
for (id str in array) {
//判断是不是字符串对象
if ([str isKindOfClass:[NSString class]]) {
//将是字符串的对象添加到刚才初始化化的数组中
[arr addObject:str]
}
}
//返回存储字符串的数组的个数
return arr.count
}
当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、NSArrayNSArray是苹果公司的cocoa库中的数组类,用Objective-c实现的。NSArray中每个元素是id(也就是NSObject *,所有类的基类)类型,意味着NSArray中可以存放各种不同类型的对象。2、C语言中的数组而原生的C语言是结构化编程语言,没有类这种概念,当然也没有NSArray这个类了。C语言中的数组,是一种数据类型data type(不是类class),里面必须存放相同类型的数据。例如:int a[10] // 整型数组char b[10] // 字符型数组......欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)