NSNumber
1.定义基本数据类型
char a = 'f';
int b = 5;
short c = 20;
long d = 100;
float e = 2.5;
double f = 225.214;
BOOL isTrue = YES;
2.将基本数据类型转化为NSNumber类型的对象
NSNumber *a1 = [NSNumber numberWithChar:a];
NSNumber *b1 = [NSNumber numberWithInt:b];
NSNumber *c1 = [NSNumber numberWithShort:c];
.
.
.
NSNumber *isTrue1 = [NSNumber numberWithBool:isTrue];
将对象存入数组中
NSArray *arr = [NSArray arrayWithObjects:a1,b1,c1,d1,e1,f1,isTrue1,nil];
NSLog(@"%@",arr);
3.将NSNumber类型的对象转化为基本数据类型
char a2 = [a1 charValue];
int b2 = [b1 intValue];
4NSNumber类型的比较
NSLog(@"%ld",[a1 compare:b1]); //升序为-1,降序为1,相等为0;
NSArray
首先了解一下数组的价值:(1)储存多个元素.(2)储存的元素只能是对象,对象可以是不同类型的(3)数组是一个有序的集合(4)数组中的元素可以重复,而且重复的对象可以成为数组元素
1.创建数组对象
(1)使用 便利构造器方法
arrayWithObjets 创建对象时可以指定多个对象元素,元素与元素之间用逗号隔开
nil 数组元素的结束标志,遇到nil之后的元素都不放在数组中
NSArray *arr1 = [NSArray arrayWithObjects:@"aa",@"bb".@"cc",@"dd",nil];
NSLog(@"%@",arr1);
(2)使用初始化方法
NSArray arr2 =[[NSArray alloc]initWithObjects:@"aa",@"bb",@"cc",@"dd",@"ee",@"aa",@"bb",@"cc",@"dd",nil,@"ee", nil];
2.获取元素个数
NSInteger count = [arr2 count];
NSLog(@"%lu",count);
NSLog(@"%lu",count);
3.根据索引值获取对象
//(1).获取指定下标对应的元素
NSString *str = [arr2 objectAtIndex:1];
NSLog(@"%@",str);
//(2).获取数组中的第一个元素
//firstObject 与 lastObject 好在当数组元素为空时,会返回nil 而objectAtIndex则会造成程序crash . index 0 beyond bounds of empty array 数组下标越界.
NSString *str1 = [arr2 firstObject];
NSLog(@"%@",str1);
//(3).获取数组中的最后一个元素
NSString *str2 = [arr2 lastObject];
NSLog(@"%@",str2);
4.获取对象在数组中的索引值
NSUInteger index = [arr2 indexOfObject:@"dd"];
NSLog(@"%lu",index);
5.判断是否包含某个对象
BOOL isExist = [arr2 containsObject:@"Frank"];
NSLog(@"iseExist = %d",isExist);
//(1).获取指定下标对应的元素
NSString *str = [arr2 objectAtIndex:1];
NSLog(@"%@",str);
//(2).获取数组中的第一个元素
//firstObject 与 lastObject 好在当数组元素为空时,会返回nil 而objectAtIndex则会造成程序crash . index 0 beyond bounds of empty array 数组下标越界.
NSString *str1 = [arr2 firstObject];
NSLog(@"%@",str1);
//(3).获取数组中的最后一个元素
NSString *str2 = [arr2 lastObject];
NSLog(@"%@",str2);
4.获取对象在数组中的索引值
NSUInteger index = [arr2 indexOfObject:@"dd"];
NSLog(@"%lu",index);
5.判断是否包含某个对象
BOOL isExist = [arr2 containsObject:@"Frank"];
NSLog(@"iseExist = %d",isExist);
6.数组排序(幼儿版)
NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",sortArr);
NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@",sortArr);
7.快速遍历(快速枚举)
// for (int i = 0; i < [arr2 count]; i++) {
// NSString *str = [arr2 objectAtIndex:i];
// NSLog(@"%@",str);
// }
for (NSString *str in arr2) {
NSLog(@"%@",str);
}
}
// 数组元素类型 起一个对象的名字(自己拟定)
// for (<#type *object#> in <#collection#>) {
// <#statements#> 集合(也就是大容器,数组,字典,或者集合)
// }
// forin 快速枚举(遍历),用于将集合中的元素便利出来
下面举一个例子
// for (int i = 0; i < [arr2 count]; i++) {
// NSString *str = [arr2 objectAtIndex:i];
// NSLog(@"%@",str);
// }
for (NSString *str in arr2) {
NSLog(@"%@",str);
}
}
// 数组元素类型 起一个对象的名字(自己拟定)
// for (<#type *object#> in <#collection#>) {
// <#statements#> 集合(也就是大容器,数组,字典,或者集合)
// }
// forin 快速枚举(遍历),用于将集合中的元素便利出来
下面举一个例子
1.先创建几本书
Book *book1 = [[Book alloc]initWithName:@"IOS初级1" author:@"Frank" price:1];
Book *book2 = [[Book alloc]initWithName:@"IOS初级2" author:@"Frank" price:2];
Book *book3 = [[Book alloc]initWithName:@"IOS初级3" author:@"Frank" price:3];
Book *book1 = [[Book alloc]initWithName:@"IOS初级1" author:@"Frank" price:1];
Book *book2 = [[Book alloc]initWithName:@"IOS初级2" author:@"Frank" price:2];
Book *book3 = [[Book alloc]initWithName:@"IOS初级3" author:@"Frank" price:3];
2.储存在数组中
NSMutableArray *arr = [[NSMutableArray alloc]initWithObjects:book1,book2,book3, nil];
NSMutableArray *arr = [[NSMutableArray alloc]initWithObjects:book1,book2,book3, nil];
3.添加一本书
Book *book4 = [[Book alloc]initWithName:@"IOS初级4" author:@"Frank" price:4];
[arr addObject:book4];
Book *book4 = [[Book alloc]initWithName:@"IOS初级4" author:@"Frank" price:4];
[arr addObject:book4];
4.删除一本书
[arr removeObjectAtIndex:0];
5.通过书名查找书
for (Book *BOOK in arr) {
//获取到数组中的元素,然后对比名字,如果相同就输出名字
if ([[BOOK name]
isEqualToString:@"IOS初级3"]) {
[BOOK setPrice:1000];
NSLog(@"%@",[BOOK name]);
NSLog(@"查找成功");
}
}
NSLog(@"%.2f",[book3 price]);
[arr removeObjectAtIndex:0];
5.通过书名查找书
for (Book *BOOK in arr) {
//获取到数组中的元素,然后对比名字,如果相同就输出名字
if ([[BOOK name]
isEqualToString:@"IOS初级3"]) {
[BOOK setPrice:1000];
NSLog(@"%@",[BOOK name]);
NSLog(@"查找成功");
}
}
NSLog(@"%.2f",[book3 price]);
6.输出书籍清单
for (Book *book in arr) {
NSLog(@"%@",book);
}
for (Book *book in arr) {
NSLog(@"%@",book);
}