//数组:数组可以用来存储元素(对象的内容地址,因为将来可以通过这个内存地址找到这个对象)。
数组分为:不可变数组(查 用objectAtIndex)以及可变数组(增、删、改、查的功能)。数组可以看成是以链表的数据结构来存储的,是有序的。
//不可变数组:NSArray:NSObject
//数组不能存放基本数据类型 nil结束符
NSArray *array=[[NSArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",nil];
//查询(数组放的什么类型的元素,就用什么指针来接收)
//Index 数组元素个数-1=>索引位>=0
for (int i=0; i<array.count; i++) {
NSString *a=[array objectAtIndex:i];
NSLog(@"%@",a);
}
//不可变数组字面量创建对象的方法
// NSArray *array=[@"a",@"b"];
//可变数组 NSMutableArray:(继承于)NSArray
//创见时候可以选择init 因为是可增的
NSMutableArray *mutablrArray=[[NSMutableArray alloc]initWithObjects:@"1",@"2",@"3",@"4",@"5",nil];
//增(add 添加 insert 插入 )
[mutablrArray addObject:@"6"];//默认添加在后面
[mutablrArray insertObject:@"a" atIndex:2];//在某个位置插入这个元素
//删(remove)
[mutablrArray removeObject:@"a"];//删除指定元素
//改(replace替换 exchange交换)
[mutablrArray replaceObjectAtIndex:0 withObject:@"xx"];
[mutablrArray exchangeObjectAtIndex:0 withObjectAtIndex:5];
//查
NSString* info0=[mutablrArray objectAtIndex:0];
NSLog(@"%@",info0);
//遍历数组
for (int k=0; k<5; k++) {
NSString *array=[mutablrArray objectAtIndex:k];
NSLog(@"%@",array);
}//速度慢
//快速遍历数组
for (NSString* info in mutablrArray) {
NSLog(@"%@",info);
}
字典:
//字典:也是用来存储元素(对象的内存地址)。以键值对的方法来存储元素的(键值对一一对应,如果一个键设置多个值,那么其他值将会被替换)。并且字典的储存是无序的
//字典分为:可变和不可变字典
//不可变字典 NSDictionary
//这种初始化方法 值和键要依次写入,无序的
NSDictionary *dictionary=[[NSDictionary alloc]initWithObjectsAndKeys:@"王冲",@"name",
@"18",@"age",
@"nan",@"sex",nil];
NSString *name= [dictionary objectForKey:@"name"];
NSLog(@"%@",name);
NSLog(@"%@",dictionary.allKeys);//取出所有的键
NSLog(@"%@",dictionary.allValues);//取出所有的值
//字面量方法创建不可变字典
// NSDictionary *dictionary=@{@"name": @"张三"};
//可变字典,初始化
NSMutableDictionary *mutableDic=[[NSMutableDictionary alloc]initWithCapacity:0];
//添加
[mutableDic setObject:@"aaaliac” forKey:@"name"];
[mutableDic setObject:@"18" forKey:@"age"];
[mutableDic setObject:@"girl" forKey:@"sex"];
//删除 都和数组类似
//遍历
for (NSString *key in mutableDic.allKeys) {
NSLog(@"%@",[mutableDic objectForKey:key]);
}
NSLog(@"%@",mutableDic)
99乘法表
for (int i=1; i<10; i++) {
NSString *sum=@"";
for (int j=1; j<=i; j++) {
//实现拼接
sum=[NSString stringWithFormat:@"%@ %d*%d=%d",sum,j,i,i*j];
}
NSLog(@"%@",sum);
}
[mutableArray insertObjects:array atIndexes:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(1, 5)]];
// NSMakeRange是一个结构体类型,包含两个参数,位置和长度。表示字符串要传进来从哪里开始的位置和需要的长度。
定时器动画,关键帧动画,UIView动画
infinite :0 means infinite 0意思是无限制 (动画循环次数)
//关键帧动画(UIImageView)
//1.创建UIImageView
UIImageView *imageView=[[UIImageView alloc]initWithFrame:[UIScreen mainScreen].bounds];
imageView.image=[UIImage imageNamed:@"4.jpg "];
[self.window addSubview:imageView];
//2.创建数组保存做动画的图片
NSMutableArray *array=[[NSMutableArray alloc]initWithCapacity:0];
for (int i=1; i<7; i++) {
//字符串拼接找到是;图片的名字
NSString *imageName=[NSString stringWithFormat:@"%d.jpg",i];
//根据上面的拼接结果,将图片存到数组中
UIImage *image=[UIImage imageNamed:imageName];
[array addObject:image];
}
//3.开始做动画(图片来源,动画时间, 重复次数,开始动画)
imageView.animationDuration=2;//动画总时间,有默认值
imageView.animationImages=array;//给那些图片做动画
imageView.animationRepeatCount=0;//给那些图片做动画重复次数 默认0
[imageView startAnimating]; |
|