iOS-OC-NSArray用法大全详细说明
来源:互联网 发布:阿拉伯血钻野燕麦知乎 编辑:程序博客网 时间:2024/04/30 22:22
+ (void)NSArrayCreateMethod{ // 如果用这种格式,最后不用加nil! NSArray *array = @[@"one", @"two", @"three"]; NSLog(@"array = %@",array); QFDog *xiaoBai = [[QFDog alloc] init]; QFDog *xiaoHei = [[QFDog alloc] init]; NSArray *array1 = @[@"one", array, @"two", xiaoBai, xiaoHei]; // 打印数组的时候,NSArray的description方法,是遍历这个数组,对数组里的每个对象,调用他这个对象的description方法。 NSLog(@"array1 = %@",array1); // 用多个对象,来初始化array2数组 (注意,数组以nil结尾) NSArray *array2 = [[NSArray alloc] initWithObjects:array, array1, @"one", xiaoBai, nil]; NSLog(@"array2 = %@",array2); // 对应的加方法, 用多个对象来创建array3 NSArray *array3 = [NSArray arrayWithObjects:@"one", @"two", xiaoBai, xiaoHei, nil]; NSLog(@"array3 = %@",array3); // 用一个array3数组元素的内容,来初始化array4 NSArray *array4 = [[NSArray alloc] initWithArray:array3]; NSLog(@"array4 = %@",array4); // 对应的加方法,用array4数组元素的内容,来创建array5 NSArray *array5 = [NSArray arrayWithArray:array4]; NSLog(@"array5 = %@",array5); // 要注意和如下方法的区别,用array4这个对象,来创建一个array6. NSArray *array6 = [NSArray arrayWithObject:array4]; NSLog(@"array6 = %@",array6);}// NSString, NSArray, NSDictionary 都是由类簇实现的,都不能被继承。+ (void)NSArraySimpleMethod{ NSArray *array = @[@"one", @"two", @"three", @"four", @"three"]; // 返回数组元素的个数。 NSLog(@"count1 = %lu",[array count]); NSArray *array1 = [NSArray arrayWithObjects:@"one", @"two", array, @"four", @"five", @"six", nil]; // nil并不是数组里的元素。 NSLog(@"count2 = %lu",[array1 count]); // 遍历数组里所有的元素 (类似于C的数组方式) for (int i=0; i<[array1 count]; i++) { NSLog(@"array[%d] = %@", i, array1[i]); } // 也可以用如下方法取,就等价于array1[3]; // 根据下标,获取数组中得元素 NSString *str = [array1 objectAtIndex:3]; NSLog(@"str = %@",str); // 注意,数组不能越界访问! (nil 并不是数组的元素) // str = [array1 objectAtIndex:[array1 count]]; // NSIndexSet 是一个数字的集合类 (里面装的是数字的集合) // 通过一个range创建一个数字集合, 这个集合有(1,2,3,4)四个数字。 //字符串的截取 NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange(1, 4)]; // 根据一个数字集合,返回一个数组。 (获取子数组) NSArray *subArray = [array1 objectsAtIndexes:indexSet]; NSLog(@"subArray = %@",subArray); // 根据对象,返回在数组里的索引(数组里存在的第一个索引) NSLog(@"%lu",[array indexOfObject:@"three"]); // 根据对象,返回一个range范围内对应的数组的索引 NSLog(@"%lu",[array indexOfObject:@"three" inRange:NSMakeRange(3, 2)]); // 如果找不到,返回NSNotFound if ([array indexOfObject:@"123"] == NSNotFound) { NSLog(@"没有找到"); } // 将字符串分割成一个数组(字符集合, 字符串) // 注意,我们分割出来的是不可变数组 // @"" @"Don't" @"" @"trouble" @"" @"trouble" @"" @"or" @"trouble" @"trouble" @"you" @"" @"" NSString *string = @" Don't trouble trouble, or trouble trouble you! "; // NSCharacterSet 是一个字符集合,这个方法是用一个字符串的字符,来创建一个字符集合。 NSCharacterSet *cs = [NSCharacterSet characterSetWithCharactersInString:@", !"]; NSArray *array2 = [string componentsSeparatedByCharactersInSet:cs]; NSLog(@"array2 = %@",array2); // 剔除空串 NSMutableArray的时候说。 NSString *string1 = @"Give you some color see see"; // 以字符串整体作为分割条件 NSArray *array3 = [string1 componentsSeparatedByString:@" "]; NSLog(@"array3 = %@",array3); // 将一个字符串的数组,拼接成一个字符串 NSString *string2 = [array3 componentsJoinedByString:@"-"]; NSLog(@"string2 = %@",string2); NSLog(@"%@",[array2 componentsJoinedByString:@"-"]); // 数组的枚举,快速枚举 // 枚举器 NSEnumerator // 数组的方法,创建一个枚举器 (正序的枚举器) NSEnumerator *e = [array3 objectEnumerator]; // 这个地方,最好写成id obj; 但是因为我们明确知道,这个数组里装的都是字符串,我们也可以写成NSString *obj; NSString *obj = nil; // e nextObject 这个方法,会将数组的元素,依次取出,赋值给obj, 直到最后返回nil给obj, 退出循环。 while (obj = [e nextObject]) { NSLog(@"obj = %@",obj); } NSLog(@"---------------"); // 创建一个反序的枚举器 e = [array3 reverseObjectEnumerator]; while (obj = [e nextObject]) { NSLog(@"obj = %@",obj); } // 快速枚举 (用的非常多,非常方便) // id obj, 相当于定义了一个id类型的obj语句块变量 // for (int i=0; i<....) // 将array1里的元素,依次赋值给obj,直到nil结束。 for (id obj in array1) { NSLog(@"obj = %@",obj); // [NSArray class] 这个方法返回的就是NSArray类的名字。 // NSClassFromString(@"NSArray") 根据字符串返回一个类的名字,返回的就是NSArray // isMemberOfClass, 是判断obj是否为[NSArray class]类的对象。 // [obj isMemberOfClass:[NSArray class]] // isKindOfClass, 判断obj是否为NSArray类,或者其子类的对象。 // if ([obj isKindOfClass:[NSArray class]]) {// if ([obj isKindOfClass:NSClassFromString(@"NSArray")]) {// continue;// }// if ([obj isEqualToString:@"four"]) {// break;// } } NSLog(@"--------"); // 通过for循环也可以,for循环除了i++,还能i+=2,但是快速枚举,枚举器是无法做到的! for (int i=0; i<[array count]; i++) { // id obj = [array objectAtIndex:i]; id obj = array[i]; NSLog(@"obj = %@",obj); }}
0 0
- iOS-OC-NSArray用法大全详细说明
- iOS-OC-NSMutableArray用法大全详细说明
- iOS-OC-NSDictionary和NSMutableDictionary用法大全详细说明
- OC中NSArray用法
- IOS OC NSArray&NSMutableArray
- iOS-OC-NSString和NSMutableString用法大全
- ios笔记-NSArray用法
- OC语言-----NSArray , NSMutableArray, NSNumber 基本用法
- oc中NSString,NSArray,NSDictionary常用用法
- IOS开发---OC语言-㉝NSArray数组
- iOS开发-Day18-OC NSArray&NSMutableArray
- iOS--NSArray,NSMutableArray常用用法
- OC-NSArray
- OC-NSarray
- OC-NSArray
- DEBUG用法详细说明
- grep 详细用法 说明
- Chart用法详细说明
- Problem P
- ubuntu 上安装opencv以及测试
- jquery-zclip插件
- DataBinding学习(五)
- BW ZCHANGE_PACKAGE
- iOS-OC-NSArray用法大全详细说明
- EventBus-通信框架
- 压力测试过程中,采集服务器性能数据
- css direction
- codevs 1571 电车
- 搭建cocos-js开发环境
- 超市守店等死?还是抓住社区电商这根救命稻草?
- checkbox 全选、半选、不选设置
- Android开发:使用Glide动态加载圆形图片和圆角图片