目录:ios
1、NSString补充api
3、遍历框架
5、数组复制开发工具
6、数组的排序spa
SDK、API、Foundation、Cocoa是什么?指针
SDK Software Development Kit开发工具包,目标文件.o实现库,非开源。code
API Application Program Interface是应用程序接口,是.h文件的声明库。对象
Cocoa( Foundation框架【API、SDK】、UIKIT框架【API、SDK】 )
1、NSString补充
1 截取字符串
* 从指定下标开始,包含开始位置,截取字符串
SubStringFromIndex从中间到最后
* 从0开始,到指定位置,不包含指定位置
SubStringToIndex 从开始到中间
* 指定范围截取字符串
SubStringWithRange
2 字符串大小写转换
* 将全部的字符串内容变为大写
uppercaseString 会建立一个新的字符串
* 将全部的字符串内容变为小写
lowercaseString
* 将单词的首字母大写
capitalizedString
3 获得字符串的前缀和后缀
TRStudent.h
若是一个字符串是文件名,能够获得这个字符串的前缀和后缀。
* 判断一个文件是否有某个前缀,返回布尔类型
BOOL b = [str hasPrefix:@"TR"]
* 判断一个文件是否有某个后缀,返回布尔类型
BOOL b = [str hasSuffix:@".h"]
2、NSMutableArray可变数组
1 //1 初始化方法 2
3 //NSMutableArray* array = [NSMutableArray array];
4
5 NSMutableArray* array2 = [NSMutableArray arrayWithObjects:@"one",@"two", nil]; 6
7 //2 向数组中添加一个元素
8
9 [array2 addObject:@"three"]; 10
11 //3 在指定位置添加一个元素
12
13 [array2 insertObject:@"four" atIndex:2]; 14
15 //4 删除指定下标的元素
16
17 [array2 removeObjectAtIndex:2]; 18
19 //5 删除指定对象(删除对象的地址)
20
21 [array2 removeObject:@"three"]; 22
23 //6 替换指定下标的元素
24
25 [array2 replaceObjectAtIndex:1 withObject:@"2"]; 26
27 //7 删除数组中全部元素
28
29 [array2 removeAllObjects]; 30
31 NSLog(@"%@",array2);
3、遍历(三种遍历方式)
1 for循环
2 快速枚举
1 //2 forin 2
3 //NSString* str 保存数组元素的变量 4
5 //array 要遍历的数组
6
7 for (NSString* str in array) { 8
9 NSLog(@"arrar:%@",str); 10
11 }
练习:National类(名称China)拥有多个地区,地区Area(名称、人口)。建立三个地区
(beijing3000,guangzhou2000,shanghai1000)
显示全部城市及人口
只显示北京的人口
3 迭代器遍历
1 //* 每一个数组和集合都有本身的迭代器
2
3 NSEnumerator* enumer = [array objectEnumerator]; 4
5 //* 每次迭代时要发送消息 6
7 //[enumer nextObject] 8
9 //返回当前指向数组中的对象,而且自动向下移动一位, 10
11 //若是没有对象时,则返回nil,且终止迭代 12
13 //向数组中取对象
14
15 id obj; 16
17 while (obj = [enumer nextObject]) {//自动取值,而后向下移动一下
18
19 NSString* str = obj; 20
21 NSLog(@"str:%@",str); 22
23 }//运行此循环的时候先取出一个值,而后向下移动
4、NSArray支持的新语法
1 ios6.0及osx10.8以后,编译器LLVM编译支持
2 初始化数据
OC:[NSArray arrayWithObjects:@"a",@"b",nil]
OC新语法:NSArray* array = @[@"a",@"b"];
3 根据下标获得数组中的元素的值
OC:[array objictAtIndex:0];
OC新语法:array[0];
5、数组复制
1 分深拷贝(内容复制)、浅拷贝(引用复制)
2 复制对象:指针复制(浅拷贝)、内容复制(深拷贝)
3 数组中的元素,对象的引用
4 浅拷贝:新数组和原有数组共享内存中的对象
NSArray* array2 = [[NSArray alloc] initWithArray:array copyItems:NO];
5 深拷贝:新数组和原有数组都有独享的对象
NSArray* array3 = [[NSArray alloc] initWithArray:array copyItems:YES];
注:深拷贝数组的对象必须遵照NSCopying协议,而且实现copyWithZone方法,若是不但想复制对象,还要复制对象的值,要添加有参的copyWithZone方法
6、数组的排序
1 可让数组中的对象按照必定规则进行排序
2 类必须实现compare方法(排序的规则)
3 规则原理:0相等 -1升序 1降序
4 发送排序消息
NSArray* array2 = [array sortedArrayUsingSelector:@selector(compare:)];
练习:建立5个学生对象,按姓名排序
做业:1.按年龄排序升序、降序。
2.先年龄升序再按姓名升序(年龄相等的人,再按姓名排序)
做业:
联系人信息:TelphoneInfo 1
name:ysy 2 谁的联系人信息
userInfos: 2 全部好友信息
-addUserInfo 3 添加好友
-removeUser 7 删除好友
-lookupUserInfoByName 6查找好友信息
-list 4 查看全部好友信息
-sort 5 查看全部好友信息排序
我的信息:UserInfo 1
name:2 好友的姓名
email:2
telphone:2
-showInfo;3 查看好友的详细信息