objective-c数组笔记

数组与可变数组

2015年6月14日

1.数组

数组的初始化方式

1.初始化一个空数组

NSArray *array = [[NSArray alloc] init];//不可变数组,数组内不可以添加,删除,替换等元素

2.初始化一个空数组

NSArray *array = [NSArray array];

3.初始化一个数组,同时赋一个值给数组

NSArray *array = [NSArray arrayWithObject:@""];//数组里可以放任何类型的数据

4.初始化的同学添加多个元素

NSArray *array = [NSArray arrayWithObjects:@"",@"", nil];//注意不要忘记写nil,在它的前面有个逗号,

5.数组书写的新方法

NSArray *array = @[@"",@""];

数组取值,通过数组下标取值,下标从0开始,取数组里面元素的方法objectAtIndex

// 新方法

// 数组里面存的是什么类型就要用什么类型的变量去接收

// NSString *name = list[1];

NSLog(@“%@",list[2]);

类型转换

数组里面需要的是id类型 需要把基本数据类型转换成NSNumber类型

int age = 120;

int s = 1;

NSLog(@"%012d",s);

NSNumber *ageNum = [[NSNumber alloc] initWithInt:age];

NSLog(@"%@",ageNum);

NSNumber *ageNum1 = [NSNumber numberWithInt:age];

// 现在把NSNumber类型转换成float类型

float aa = [newXiaoShu floatValue];

NSLog(@“%.5f",aa);

2.可变数组

// 可以在数组里面进行增删改的操作

//

// 可变数组与数组的关系:可变数组是数组的子类,

// 可变数组的初始化方式

// NSMutableArray *array= [[NSMutableArray alloc] init];

// NSMutableArray *array1 = [NSMutableArray array];

// NSMutableArray *array2 = [NSMutableArray arrayWithObject:@""];

// NSMutableArray *array3 = [NSMutableArray arrayWithObjects:@"",@"", nil];

// NSMutableArray *array4 = @[@""];不可以这样写,切记,这是可变数组与数组的一个区别,这样初始化它里面的元素是不可变的

// 可变数组可以向数组内添加元素

// 使用可变数组的时候一定要初始化

NSMutableArray *array = [NSMutableArray array];

// 为可变数组添加方法

// [array addObject:@"huLuWan"];

// [array addObject:@"aoTeMan"];

// NSLog(@"%@",array);

[array removeObjectAtIndex:70];移除第70个元素

// [array removeAllObjects];

[array removeObject:@“技能7"];//把“技能7”移除

// id obj 数组里面的每个元素

// in表示在哪个里面

// group 要遍历的数组

// 和上面的for循环一样的功能

for(id obj in group){

NSLog(@"%@",obj);

}

// [group firstObject];//获得数组的第一个元素

// [group lastObject];//获得数组的最后一个元素

[group replaceObjectAtIndex:3 withObject:@"fengshenghai666"];//替换第三个元素为fengshenghai666

补充

- (NSString *)description

{

return [NSString stringWithFormat:@"英雄的名字是:%@,等级是:%ld级,装备是:%@,血量是:%ld,攻击力是:%ld",self.heroName,(long)self.heroLv,self.heroEquipment,self.heroBlood,self.ATK];

}

description方法重写

这样写了之后,在main函数中写这样for循环

for (Hero *hero in allHeroDate) {//把所有的英雄数据输出;

NSLog(@"%@",hero);

}

就能输入allHeroDate里面的所有东西,输出(打印)格式是description里面的格式(样子)