一 常用类
NSRange 范围,NSPoint 点,NSSize /CSSize 大小,CGRect
1 NSRange
1)NSRange是一种C语言结构用来帮助描述一系列的条款,包括一个起点位置和一个计数方法。可以对其指定起始位置以及所需的元素数量。
2)NSRange的结构如下图所示:
location是在行列中的起始位置(基于零点),而length是行列中的条目个数。NSUInteger只是单纯的一个无符号的值,它支持32位和64位系统。
3) 例子
NSString *param= @"0123456789"; NSRange ns = NSMakeRange(3, 5) ; NSLog (@"subStr=%@", [param substringWithRange:ns]);
输出结果为: subStr=34567
二 NSString
1. 创建字符串
NSString *string= @"hello”; NSString *string = [[NSString alloc] initWithString: @"hello"];
2.拼接字符串
1 float f = 2.4; 2 NSString *floatStr =[NSString stringWithFormat:@"%.1f" , f]; 3 NSLog(@"%@", floatStr ); 4 5 double d = 68.9999; 6 NSString *doubleStr = [NSString stringWithFormat:@"%.4f" , d ]; 7 NSLog(@"%@" , doubleStr ); 8 9 char c = 'c'; 10 NSString *charStr = [NSString stringWithFormat:@"%c" , c]; 11 NSLog(@"char=%@" , charStr );
第2行:转换单精度浮点数为字符串。
第6行:转换双精度浮点数为字符串。
第10行:转换字符为字符串。
3.将字符串转化成基本数据类型
使用字符串的 floatValue, doubleValue, initValue将字符串转换为基本数据类型。
1 NSString *str = @"32421"; 2 int i= [str intValue];
4. 将字符串中的字母转换成大写
NSString *str = @"china"; NSString *str1 =[str uppercaseString];
5.将字符串中的字母转换成小写
NSString *str1 = "CHINA"; NSString *str2 = [str1 lowercaseString];
6.将字符串的首字母转成大写,其余转成小写。
NSString *str = @"CHINA"; NSString *str2 = [str capitalizedString];
三 数组
数组分为可变数组(NSMutableArray)和不可变数组(NSArray)。
数组只能存放OC对象,不能放基本数据类型,可以在基本数据类型前面,加上@。
1.不可变数组
1. 不可变数组的创建
2. 数组派生出新的数组
3.数组的遍历
1 //第一种遍历:普通for循环 2 long int count = [array count]; 3 for (int i = 0 ; i < count; i++) { 4 NSLog(@"1遍历array: %zi-->%@",i,[array objectAtIndex:i]); 5 } 6 7 //第二种遍历:快速for循环,需要有外变量i 8 int i = 0; 9 for (id obj in array) { 10 NSLog(@"2遍历array:%zi-->%@",i,[array objectAtIndex:i]); 11 i++; 12 }
2.可变数组
定义:创建一个可变数组,并且给他配置空间,空间存满会自动扩充空间。
注意:@[]只能创建不变数组。
四 字典
1. 不可变字典
1)初始化
NSDictionary *dic = [NSDictionary dictionaryWithObject: @"value" forKey:@"key" ];
NSDictionary *dic2 = [NSDictionary dictionaryWithObjects: @[@"v1" , @"v2" , @"v3"] forKeys: @[@"k1" , @"k2" , @"k3"]];
NSDictionary *dic3 = @{@"key1" : @"value2", @"key2" : @"value2"};
2. 可变字典
五 集合总结:
1 NSString / NSMutableString。
2 NSArray / NSMutableArray。
1) 有序
2) 快速创建(相对于不可变数组): @[@"a" , @"b" , @"c"]
3) 快速访问: 数组名[i]
3 NSSet。
1) 无序
4 NSDictionary / NSMutableDictionary。
1)无序
2)快速创建: @[ key: value, key : value]
3)快速访问: 字典名[key]
5 NSSet 和 NSArray 的对比:
1) 共同点:
都是集合,都能存放多个OC对象。
都能存放OC对象,但是不能存放非OC的对象类型(基本数据类型,结构体,枚举)。
本身都不可变,都有可变的自雷。
2) 不同点:
NSArray是有序的, NSSet是无序的。
1.有序的角度: 数组有序, 字典和集合都是无序的 2.能否通过下标来访问: 数组可以, 字典和集合都不可以 3.元素是否可以重复: 数组可以重复, 字典中key值不可以重复,value值可以重复, 集合中元素不可以重复 4.打印的样式: 数组: () 字典: {} 集合: {()}