//NSArray:不可变数组类
//--------------------------------------创建只有一个元素的数组
//-------------------arrayWithObject
//NSArray创建的数组内部存放的元素必须是"对象"类型
NSArray *array = [NSArrayarrayWithObject:@"1"];//arrayWithObject接收的参数是"对象"类型数据,@"1"可以看做是一个对象
//去数组中得元素,元素下标从0开始
NSLog(@"%@", array[0]);
//将字符串转变为整型数据
NSInteger a = [array[0] intValue];
NSLog(@"%ld", a);
//-------------------------------------创建有多个元素的数组
//------------------arrayWithObjects
//是个类方法,参数列表中各个对象以逗号分隔,最后以nil结尾,nil是数组结束的标识符
NSArray *array2 = [NSArrayarrayWithObjects:@"aaa",@"bbb", @"ccc", nil];
//--------------------------------------得到数组的元素个数
//-----------------Count
//计数时不计入nil
NSUInteger b = [array2 count];
NSLog(@"%lu", b);
//打印数组的每一个元素
for (int i = 0; i < [array2count]; i++) {
NSLog(@"%@", array2[i]);
}
//错误方法,不能把nil当做c语言中字符串末尾的'\0'作为判断条件使用,count遇到nil默认数组结束
// int i = 0;
// while (array2[i] != nil) {
// NSLog(@"%@", array2[i]);
// i++;
// }
//快捷打印(直接输入数组名),打印出得是一个数组,而不是数组中的元素
NSLog(@"%@", array2);
//数组中存放的元素必须是对象,但是对象的类型可以是不同的
//NSArray是一个不可变的数组,一旦被创建,就不能改变(元素个数不能增减,元素内容不能变化)
Person *person1 = [PersonpersonWithName:@"jim"age:12];
Person *person2 = [PersonpersonWithName:@"hank"age:12];
Person *person3 = [PersonpersonWithName:@"victor"age:18];
NSArray *array3 = [[NSArrayalloc] initWithObjects:person1, person2, person3,nil];
NSLog(@"%@", array3); //可以直接将person对象中得内容打出来
NSLog(@"%@",[array3[1]name]);
//数组中得元素本质是地址,地址不能被改变,但是地址对应的内容可以改变
[person2setName:@"123"];
NSLog(@"%@", array);//打印结果是:person2的名字变为123,
//------------------------------------动态大小数组
//-------------------NSMutableArray
//创建
NSMutableArray *mArray = [[NSMutableArrayalloc] initWithCapacity:0];
//添加元素
//addObject:默认在数组末尾处添加
//不仅可以添加一个普通的对象,还可以添加一个数组,即使这个数组中又有多个对象,在被添加的数组中仍被当做一个对象来看待
[mArrayaddObject:@"aaa"];
[mArrayaddObject:person1];
//addObjectFromArray:在数组后添加另一个数组
[mArrayaddObjectsFromArray:array3];
NSLog(@"%@", mArray);