IOS基础之 (八) Foundation框架

一 常用类

 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.打印的样式: 数组: () 字典: {} 集合:  {()}

 

 

 

 

 

 

  

 

posted @ 2016-02-19 23:10  陈晓楠  阅读(215)  评论(0编辑  收藏  举报