标签:
NSArray数组
//类方法创建数组(空数组,没有意义)
NSArray *array = [NSArray array];
//实例方法创建数组(空数组)
NSArray *array1 = [[NSArray alloc]init];
//创建一个数组并初始化元素 nil表示数组结束
NSArray *array2 = [NSArray arrayWithObjects:@"wukong",@"八戒",@"baigujing", nil];
//用一个数组去创建一个新数组(相当于数组拷贝)
NSArray *array3 = [NSArray arrayWithArray:array2];
//快速创建
NSArray *array4 = @[@"1",@"ret",@"frsgdfh"];
//实例方法指定对象创建数组
NSArray *array5 = [[NSArray alloc]initWithObjects:@"3",@"JDS",@"f", nil];
//数组元素个数
NSLog(@"%ld",[array5 count]);
//访问数组元素
NSLog(@"%@",[array5 objectAtIndex:1]);
NSLog(@"%@",array5[1]);
//是否包含某一对象(调用这个对象的isEqual方法)
BOOL isContain = [array containsObject:@"1"];
//字符串切割成数组
NSString *string7 = @"20|http://www.baidu.com";
NSArray *a = [string7 componentsSeparatedByString:@"|"];
for (int i = 0; i < [a count]; i++) {
NSLog(@"%@",a[i]);
}
//可变数组(一定要初始化)
//创建可变数组(不能像NSArray那样快速创建)
NSMutableArray *mArray = [NSMutableArray array];
NSMutableArray *mutableArray1 = [[NSMutableArray alloc]init];//实例变量初始化
//创建时该数组可容纳元素个数
NSMutableArray *arr = [NSMutableArray arrayWithCapacity:10];
//添加数组元素
[mutableArray1 addObject:@"xiaobai"];
//添加多个数组元素
mutableArray1.array = @[@"ds",@"3",@"rt"];
//在指定下标插入元素
[mutableArray1 insertObject:@"xiaohei" atIndex:1];
//删除数组末尾元素
[mutableArray1 removeLastObject];
//删除所有元素
[mutableArray1 removeAllObjects];
//根据元素对象删除数组对应元素(通过isEqual方法比较)
[mutableArray1 removeObject:@"xiaohei"];
//根据数组元素下标,删除对应元素
[mutableArray1 removeObjectAtIndex:0];
//遍历数组
NSArray *array6 = [NSArray arrayWithObjects:@"Naruto",@"Luffy",@"Sasuke",@"Zoro",@"Conan",@"Kakashi", nil];
for (int i = 0; i < [array6 count]; i++) {
NSLog(@"%@",[array6 objectAtIndex:i]);
NSLog(@"%@",array6[i]);
}
for (NSString *str in array6) {
NSLog(@"%@",str);
}
//获取数组第一个元素
NSLog(@"%@",[array6 firstObject]);
//获取数组最后一个元素
NSLog(@"%@",[array6 lastObject]);
// 字符串转数组
NSString *string = @"1 2 3 4 5 6";
// 使用字符串来分割原来的字符串成一个数组
NSArray *array14 = [string componentsSeparatedByString:@" "];
NSLog(@"%@",array14);
// 把数组组装字符串
NSString *str = [array componentsJoinedByString:@"-"];
NSLog(@"%@",str);
// 让数组中的所有元素执行某个方法
[array makeObjectsPerformSelector:@selector(bark)];
[array makeObjectsPerformSelector:@selector(eat:) withObject:@"骨头"];
//遍历数组
// 使用普通for
NSArray *arr3 = @[@"re",@"fd",@"s"];
for (int index = 0; index < array.count; index++) {
NSString *sss = array[index];
NSLog(@"%@",sss);
}
// 使用增加for(最常用)
for (NSString *str in arr) {
NSLog(@"%@",str);
}
// 通过枚举器
NSEnumerator *enumer = [arr objectEnumerator];
NSString *newDog;
while (newDog = [enumer nextObject]) {
NSLog(@"%@",newDog);
}
// 通过block方式
// idx 表示这个元素在数组索引
// stop 设置为YES 那么就不往后遍历的
[arr enumerateObjectsUsingBlock:^(NSString * dog, NSUInteger idx, BOOL *stop) {
NSLog(@"%@-%zd",dog,idx);
if (idx == 2) {
*stop = YES;
}
}];
数组排序
// 使用比较器(block)
// array = [array sortedArrayUsingComparator:^NSComparisonResult(CZDog * obj1, CZDog * obj2) {
//
// if(obj1.age == obj2.age){
// return [obj1.name compare:obj2.name];
// }else if(obj1.age > obj2.age){
// return NSOrderedDescending;//降序
// }else{
// return NSOrderedAscending;//升序
// }
//
// return [obj1.name compare:obj2.name];
// }];
// NSLog(@"%@",array);
//属性描述器比较
NSSortDescriptor *desc1 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];
NSSortDescriptor *desc2 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
array = [array sortedArrayUsingDescriptors:@[desc1,desc2]];
NSLog(@"%@",array);
标签:
原文地址:http://www.cnblogs.com/naruto-2/p/5148599.html