OC学习 第六章 NSArray
2015-10-31 14:47
225 查看
OC学习 第六章 NSArray
1.创建:
(1) NSArray *arr = [NSArray array];//初始化一个空的数组
(2) NSArray *arr1 = [NSArray arrayWithObject:@"qwe"];//初始化一个包含一个元素的数组
NSLog(@"%@",arr1);
(3) NSArray *arr2 = [NSArray arrayWithObjects:@"1",@"2",@"234", nil];//初始化多个元素的数 组,元素之间用逗号隔开,最后以nil结束
(4)NSArray *arr3 = @[
@"12",
@"23",
@"34"
];//初始化多个元素的数组,元素之间用逗号隔开,注意,最后一个元素后面不要加逗号。
2.常用方法:
NSUInteger count = arr3.count;//数组元素的个数
[arr3 firstObject];//数组的第一个元素
[arr3 lastObject];//数组的最后一个
[arr3 objectAtIndex:2];//获取数组某个位置的元素
int i = [arr3 indexOfObject:@"34"];//获取某个元素在数组中的位置
BOOL flag =[arr3 containsObject:@"12"];//这判断数组中是否包含某个元素
NSLog(@"===%d",flag)
3.数组遍历:for循环遍历:
for(inti
= 0; i < arr.count;
i++) {
NSLog(@"%@",arr[i]);
}
枚举器遍历:
NSEnumerator*e = [arr
objectEnumerator];
NSString*obj ;
while(obj = [e
nextObject]) {
NSLog(@"%@",obj);
}
快速枚举:
for(idobj1
in
arr) {
NSLog(@"%@",obj1);
}
4.数组存放自定义类的对象(遍历):
Student*stu = [[Studentalloc]init];
stu.name=
@"122";
Student*stu1 = [[Studentalloc]init];
stu1.name=
@"123";
NSArray*stuArr =
@[
stu,
stu1
];
for(inti
= 0; i < stuArr.count; i++) {
id stu2 = stuArr[i];
if
([stu2
isKindOfClass:[Studentclass]])
{
NSLog(@"%@",[stu2name]);
}
5.数组排序:
1. NSArray*arr =@[
@"reg",
@"ehb",
@"fbd"
];
NSArray *sortArr = [arr
sortedArrayUsingSelector:@selector(compare:)];(只能是升序)
NSLog(@"%@",sortArr);用要排序的原数组调用实例方法,第二个参数,是方法选择,如果数组的元素都是字符串,那么直接用compare:就行
2. NSArray *arr2 = [arrsortedArrayUsingComparator:^NSComparisonResult(id
obj1,id obj2) {
return[obj2
compare:obj1];
}]; 字符串才有compare:方法
NSLog(@"%@",arr2);根据比较结果,如果结果是1,则交换
3.
-(NSComparisonResult)compareWithName:(Student*)stu{
NSComparisonResultresult = [stu.namecompare:self.name];
returnresult;
}
4.
-(NSComparisonResult)compareWithAge:(Student*)stu{
NSComparisonResultresult;
if(self.age<
stu.age) {
result =
1;
}else{
result = -1;
}
return result;
}
//描述器排序
NSSortDescriptor*sort = [NSSortDescriptorsortDescriptorWithKey:@"age"ascending:YES];
NSArray
*scoreArr = @[sort];
NSArray
*arr10 = [arr sortedArrayUsingDescriptors:scoreArr];
NSLog(@"%@",arr10);
//block(代码块)排序
NSArray *sortArr2 = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
if([[obj1 age]<[obj2 age]);
//根据比较结果,如果结果是1,则交换
}];
NSLog(@"%@",sortArr2);
1.创建:
(1) NSArray *arr = [NSArray array];//初始化一个空的数组
(2) NSArray *arr1 = [NSArray arrayWithObject:@"qwe"];//初始化一个包含一个元素的数组
NSLog(@"%@",arr1);
(3) NSArray *arr2 = [NSArray arrayWithObjects:@"1",@"2",@"234", nil];//初始化多个元素的数 组,元素之间用逗号隔开,最后以nil结束
(4)NSArray *arr3 = @[
@"12",
@"23",
@"34"
];//初始化多个元素的数组,元素之间用逗号隔开,注意,最后一个元素后面不要加逗号。
2.常用方法:
NSUInteger count = arr3.count;//数组元素的个数
[arr3 firstObject];//数组的第一个元素
[arr3 lastObject];//数组的最后一个
[arr3 objectAtIndex:2];//获取数组某个位置的元素
int i = [arr3 indexOfObject:@"34"];//获取某个元素在数组中的位置
BOOL flag =[arr3 containsObject:@"12"];//这判断数组中是否包含某个元素
NSLog(@"===%d",flag)
3.数组遍历:for循环遍历:
for(inti
= 0; i < arr.count;
i++) {
NSLog(@"%@",arr[i]);
}
枚举器遍历:
NSEnumerator*e = [arr
objectEnumerator];
NSString*obj ;
while(obj = [e
nextObject]) {
NSLog(@"%@",obj);
}
快速枚举:
for(idobj1
in
arr) {
NSLog(@"%@",obj1);
}
4.数组存放自定义类的对象(遍历):
Student*stu = [[Studentalloc]init];
stu.name=
@"122";
Student*stu1 = [[Studentalloc]init];
stu1.name=
@"123";
NSArray*stuArr =
@[
stu,
stu1
];
for(inti
= 0; i < stuArr.count; i++) {
id stu2 = stuArr[i];
if
([stu2
isKindOfClass:[Studentclass]])
{
NSLog(@"%@",[stu2name]);
}
5.数组排序:
1. NSArray*arr =@[
@"reg",
@"ehb",
@"fbd"
];
NSArray *sortArr = [arr
sortedArrayUsingSelector:@selector(compare:)];(只能是升序)
NSLog(@"%@",sortArr);用要排序的原数组调用实例方法,第二个参数,是方法选择,如果数组的元素都是字符串,那么直接用compare:就行
2. NSArray *arr2 = [arrsortedArrayUsingComparator:^NSComparisonResult(id
obj1,id obj2) {
return[obj2
compare:obj1];
}]; 字符串才有compare:方法
NSLog(@"%@",arr2);根据比较结果,如果结果是1,则交换
3.
-(NSComparisonResult)compareWithName:(Student*)stu{
NSComparisonResultresult = [stu.namecompare:self.name];
returnresult;
}
4.
-(NSComparisonResult)compareWithAge:(Student*)stu{
NSComparisonResultresult;
if(self.age<
stu.age) {
result =
1;
}else{
result = -1;
}
return result;
}
//描述器排序
NSSortDescriptor*sort = [NSSortDescriptorsortDescriptorWithKey:@"age"ascending:YES];
NSArray
*scoreArr = @[sort];
NSArray
*arr10 = [arr sortedArrayUsingDescriptors:scoreArr];
NSLog(@"%@",arr10);
//block(代码块)排序
NSArray *sortArr2 = [arr sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
if([[obj1 age]<[obj2 age]);
//根据比较结果,如果结果是1,则交换
}];
NSLog(@"%@",sortArr2);
相关文章推荐
- 第 四 十 四 天:虚 拟 化 简 介 - 创 建
- Python操作Redis之集合
- Oracle 12C -- plug unplugged PDB into CDB
- Android性能优化典范 - 第2季
- The application you have selected does not exist,Xcode 提交失败
- 小解RAID
- [IR课程笔记]Hyperlink-Induced Topic Search(HITS)
- ios学习笔记(三)简单动画
- ios学习笔记(三)简单动画
- 在Android studio中进行NDK开发
- 权限框架——CAS之工作原理
- coderforce 569B Inventory
- loadrunner中切割字符串
- Android性能优化典范
- 模拟题_Loli的排列组合
- 使用百宝云搭建注册码云服务器系统
- Mat for Adding and Multiple by cuda
- Autofs自动挂载服务
- poj1611并查集
- Java异常处理