OC题,给数组添加方法,返回数组中字符串的个数(使用类方法)

OC题,给数组添加方法,返回数组中字符串的个数(使用类方法),第1张

- (NSInteger)countOfStringWithArray:(NSArray *)array {

//初始化另一个数组,存储遍历后属于字符串对象

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] // 字符型数组......


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存