OC第四节NSArray,NSMutableArray,NSNumber总结
来源:互联网 发布:网络程琳个人资料 编辑:程序博客网 时间:2024/05/23 14:02
一 数组的价值:1 存储多个元素 2 存储的元素只能是对象, 对象可以是不同类型的 3 数组是一个有序的集合 4 数组中的元素可以重复, 而且重复的对象会成为数组元素二 创建数组1 通过便利构造器创建数组NSArray *arr1 = [NSArray arrayWithObjects:str1, str2, str3, str4, str5, str6, nil];arrayWithObjects 创建对象时可以指定多个对象元素, 元素与元素之间通过逗号间隔nil 作为数组元素存放的结束标志, 遇到nil之后, 之后的元素都不会放在数组中2 通过初始化方法创建数组 NSArray *arr2 = [[NSArray alloc] initWithObjects:str1, str2, str3, str4, str5, str6, nil];三 获取元素个数 NSUInteger count = [arr1 count];四 通过下边获取数组元素NSLog(@"%@", [arr2 objectAtIndex:0]);获取最后一个元素 NSLog(@"%@", [arr1 lastObject]); 通过给定元素获取数组中的下标 NSLog(@"%lu", [arr2 indexOfObject:str4]);判断是否包含给定元素 BOOL isExist = [arr1 containsObject:str5]; NSLog(@"isExist = %hhd", isExist);五数组排序 NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"%@", sortArr);六 快速遍历(快速枚举)for (NSString *str in arr2) { NSLog(@"%@", str); }forin快速枚举(快速遍历)用于将集合中的元素取出, 遍历出来type *object: type *数组中元素的类型, object是给对象起一个名字 , collection: 集合(也就是大容器, 数组, 字典, 集合)可变数组添加[arr addObject:book4];删除[arr removeObject:book1];查找 for (Book *book in arr) { //获取到数组中的元素, 然后对比名字, 如果相同就输出名字 if ([[book name] isEqualToString:@"iOS高级编程"]) { [book setPrice:1000]; NSLog(@"查找成功, name:%@, price:%.2f", [book name], [book price]); } }输出书籍清单(书名) NSLog(@"%.2f", [book3 price]); for (Book *book in arr) { NSLog(@"%@", book); }//重写从父类继承过来的description方法//当打印该类的对象时, 系统会自动调用该方法- (NSString *)description{ //%g可以忽略掉无用的0 return [NSString stringWithFormat:@"name:%@, author:%@, price:%g", _name, _author, _price];}数据类型转换//1 定义基本数据类型变量 char a = 'f'; int b = 103; short c = 100; long d = 1000; float f = 10.23; double e = 100.22222; BOOL isTrue = YES; //2 将基本数据类型转为NSNumber类型的对象 NSNumber *a1 = [NSNumber numberWithChar:a]; NSNumber *b1 = [NSNumber numberWithInt:b]; NSNumber *c1 = [NSNumber numberWithShort:c]; NSNumber *d1 = [NSNumber numberWithLong:d]; NSNumber *f1 = [NSNumber numberWithFloat:f]; NSNumber *e1 = [NSNumber numberWithDouble:e]; NSNumber *isTrue1 = [NSNumber numberWithBool:isTrue]; NSArray *arr = [NSArray arrayWithObjects:a1, b1, c1, d1, f1, e1, isTrue1, nil]; NSLog(@"%@", arr); NSLog(@"%@, %@, %@, %@, %@, %@, %@", a1, b1, c1, d1, f1, e1, isTrue1); //3 将NSNumber类型的对象转为基本数据类型 char a2 = [a1 charValue]; NSLog(@"%c", a2); int b2 = [b1 intValue]; NSLog(@"%d", b2); //4 NSNumber类型的对象比较 NSLog(@"%ld", [a1 compare:b1]);数组中的常见错误:was mutated while being enumerated.遇到这类错误的时候,是同时对同一个数组进行了操作解决方案:在对数组内容进行改变的时候,使用备份数组下面一个简单的出现这类错误的用法: NSMutableArray * arrayTemp = xxx; for (NSDictionary * dic in arrayTemp) { if (condition){ [arrayTemp removeObject:dic]; } } 应该改为: NSMutableArray * arrayTemp = xxx; NSArray * array = [NSArray arrayWithArray: arrayTemp]; for (NSDictionary * dic in array) { if (condition){ [arrayTemp removeObject:dic]; } }
0 0
- OC第四节NSArray,NSMutableArray,NSNumber总结
- OC语言-----NSArray , NSMutableArray, NSNumber 基本用法
- OC 数组总结(NSArray,NSMutableArray)
- OC第四天:NSString、NSArray、NSNumber
- NSNumber&&NSArray&&NSMutableArray
- OC学习 -- NSString NSMutableString NSArray NSMutableArray NSNumber(详解)
- oc 知识总结二(NSArray、NSMutableArray)
- OC第四天-NSString,NSArray,NSNumber,数组遍历
- oc NSString/NSArray/NSNumber
- NSArray、NSMutableArray-OC+class
- OC--NSArray和NSMutableArray
- IOS OC NSArray&NSMutableArray
- OC-NSARRAY-NSMUTABLEARRAY
- OC中数组NSArray 和NSMutableArray学习总结
- NSString NSArray NSNumber 总结
- OC 中的NSArray NSString NSMutableArray
- OC NSSet、NSMutableSet、NSArray、NSMutableArray
- OC-NSArray和NSMutableArray
- java 锁机制
- 树-堆结构练习——合并果子之哈夫曼树
- 深度探索C++对象模型的读书心得
- 慎用缺省构造函数的一种场景
- oracle rac环境参数修改的问题
- OC第四节NSArray,NSMutableArray,NSNumber总结
- 常用Sql Server 语法大全
- Android中BroadCastReceiver使用
- POJ1019--Number Sequence
- Hibernate单向多对多
- POJ 2418 Hardwood Species
- SQLServer2008中“不允许保存更改”问题的解决方法
- oracle sql语言like模糊查询–通配符
- Leetcode - List - Add Two Numbers