OC学习(五)不可变数组类,可变数组类及数值类
2014-08-07 23:02
155 查看
<span style="font-size:18px;">今天主要学习了不可变数组类,可变数组类及数值类中的部分常用方法,下面是我对今天学习的简要总结 我们为什么要学习OC的数组,下面就是数组的几个方面的价值: (1)存储多个元素. (2)存储元素只能是对象,对象可以是不同类型. (3)数组是一个有序的集合. (4)数组中的元素可以重复,而且重复的对象会成为数组元素. 不可变数组类的部分常用方法: 1.创建数组对象 (1)使用便利构造器 arrayWithObjects 创建对象时可以指定多个对象元素,元素与元素之间通过逗号进行间隔 //nil 作为数组元素存放的结束标志,遇到 nil 之后的元素,都不会放入数组 NSArray *arr1 = [NSArray arrayWithObjects:@"aa", @"bb", @"cc", nil]; NSLog(@"arr1 = %@", arr1); (2)使用初始化方法 NSArray *arr2 = [[NSArray alloc] initWithObjects:@"aa", @"bb", @"cc", @"aa", @"bb", @"cc", nil]; NSLog(@"arr2 = %@", arr2); 2.获取元素个数 NSUInteger count = [arr1 count]; NSLog(@"%lu", count); 3.根据索引值获取对象 (1)获取指定下标对应的元素 NSString *str1 = [arr1 objectAtIndex:1]; NSLog(@"%@", str1); (2)获取数组中的第一个元素 //firstObject 与 lastObject 方法比 objectAtIndex: 方法好在当数组元素为空时,会返回nil, // 而 objectAtIndex: 则会造成程序crash.(超出下标范围) NSString *str2 = [arr1 firstObject]; NSLog(@"%@", str2); (3)获取数组中的最后一个元素 NSString *str3 = [arr1 lastObject]; NSLog(@"%@", str3); 4.获取对象在数组中的索引值 NSUInteger index = [arr1 indexOfObject:@"dd"]; NSLog(@"%lu", index); 5.判断是否包含某个对象 BOOL isExist = [arr1 containsObject:@"Frank"]; NSLog(@"%d", isExist); 6.数组排序(最简单版) NSArray *sortArr = [arr2 sortedArrayUsingSelector:@selector(compare:)]; NSLog(@"%@", sortArr); 7.快速遍历(快速枚举) for (NSString *str in arr2) { NSLog(@"%@", str); } 和已经学过的可变字符串类与不可变字符串类一样,可变数组类也是继承于不可变数组类.因此,上面介绍的 方法及不可变数组类的其他方法可变数组就可以用,下面介绍一些可变数组类独有的部分方法: 前提:建立一个书籍类(Book),包括实例变量书名,作者,价格,方法需要有书名和价格的设置器和访问器,自定义初始化,及 重写的description 1.先创建几本书 Book *book1 = [[Book alloc] initWithName:@"IOS初级编程" author:@"Frank" price:20.0]; Book *book2 = [[Book alloc] initWithName:@"IOS中级编程" author:@"Frank" price:25.0]; Book *book3 = [[Book alloc] initWithName:@"IOS高级编程" author:@"Frank" price:30.0]; 2.存储在数组中 NSMutableArray *arr = [[NSMutableArray alloc] initWithObjects:book1, book2, book3, nil]; 3.添加一本书,添加终极 Book *book4 = [[Book alloc] initWithName:@"IOS终级编程" author:@"Frank" price:30.0]; [arr addObject:book4]; 4.删除一本书,删除初级 [arr removeObject:book1]; 5.通过书名查找对应的书 for (Book *book in arr) { //获取到数组中的元素,然后对比名字,如果相同就输出名字 if ([[book name] isEqualToString:@"IOS高级编程"]){ NSLog(@"查找成功"); NSLog(@"%@", [book name]); [book setPrice:20.0]; } } NSLog(@"%.2f", [book3 price]); 6.输出书籍清单 //重写的description方法实现如下 //- (NSString *)description //{ // return [NSString stringWithFormat:@"%@ %@ %g", _name, _author, _price]; //} for (Book *book in arr) { NSLog(@"%@", book); } 数值类方法不是特别常用,简单的介绍几种: 1.定义基本数据类型变量 char a = 'k'; int b = 108; float e = 2.25; BOOL isTrue = YES; 2.将基本数据类型转为NSNumber类型的对象 NSNumber *a1 = [NSNumber numberWithChar:a]; NSLog(@"%@", a1); NSNumber *b1 = [NSNumber numberWithInt:b]; NSLog(@"%@", b1); NSNumber *c1 = [NSNumber numberWithFloat:c]; NSLog(@"%@", c1); NSNumber *isTrue1 = [NSNumber numberWithBool:isTrue]; NSLog(@"%@", isTrue1); NSArray *arr = [NSArray arrayWithObjects:a1, b1, c1, isTrue1, nil]; NSLog(@"%@", arr); 3.将NSNumber类型的对象转为基本数据类型,取两个比较特殊的 char a2 = [a1 charValue]; NSLog(@"%c", a2); BOOL isTrue2 = [isTrue1 boolValue]; NSLog(@"%d", isTrue2); 4.NSNumber类型的比较 NSLog(@"%ld", [a1 compare:b1]);</span>
相关文章推荐
- OC学习----可变数组与不可变数组
- Snail—OC学习之可变数组NSMutableArray
- OC 集合-学习笔记(数组、字典、Set集合、数值数据)
- [oc学习笔记]数组
- MATLAB学习笔记(六):数值数组及向量化运算(数组创建)
- OC不可变数组排序方法
- OC 中的数组方法(不可变数组NSArray 和 可变数组 NSMutableArray)
- oc学习之旅:内存管理2修改数组为非ARC版本
- OC基础使用(六 NSArray 不可变数组)
- OC数组学习
- OC学习篇之---数组对象的引用计数问题和自动释放池的概念
- Java的类集框架之ArrayList与OC中的可变数组
- C#数组学习- 可变数组,二维数组,和不规则数组
- OC学习之道:OC对象,字符串和数组的使用方法NSString,NSMutableString ,NSArray,NSMutableArray
- OC学习之道:关于数组的四种排序
- OC中不可变数组与可变数组
- OC_学习_数组,字典,集合
- C语言 可变参数 (初始化OC数组最后的nil的由来)
- OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法
- IOS 学习笔记 2015-03-20 OC-数值类型