目錄: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 查看好友的詳細信息