數字、字符串和集合
Foundation框架提供了一些基本對象。這些基本對象包括數字、字符串和集合,集合指的是能夠以數組、字典和集的形式使用成組對象的能力。
使用預編譯命令導入Foundation會顯著地增加程序的編譯時間。然而,通過使用預編譯的頭文件是經過編譯器預先處理過的文件。默認情況下,所有項目都會受益於預編譯的頭文件。
一、數字對象
1、概念:可根據基本數據類型來創建的對象。
2、創建方式:使用NSNumber類來創建
如:NSNumber *intNumber;
intNumber=[NSNumber numberWithInterger:100];
3、NSNumber的創建方法和檢索方法
1>、對於每個基本值,類方法都爲它分配了一個NSNumber對象,並將其設置爲指定的值。這些方法以numberWith開頭,之後是類型。此外,可以使用實例方法爲以前分配的NSNumber對象設置指定的值。這些都是initWith開頭。
2>、檢索方式,如:
NSLog(@”%li”,[intNumber integerValue];
3>、isEqualToNumber: 方法根據數值比較兩個NSNumber對象。
4>、compare: 方法
a、可用compare: 方法來測試一個數值型的值是否在數值上小於、等於或大於另一個 值。
b、消息表達式:[intNumber compare:myNumber]
c、結果:當intNumber中的值小於myNumber中的值時,返回值NSOrderedAscending; 如果兩個數相等,則返回值NSOrderedSame;如果大於,則返回值NSOrderedDescending。
4、注意事項
1>、從NSNumber對象獲得的值必須和存儲在其中的值類型一致。
2>、如果在NSNumber對象中存儲了一個值,那麼也要用一致的方式進行檢索。
3>、不能重新初始化前面創建的NSNumber的值。
二、字符串對象
1、字符串對象
1>、介紹:Foundation框支持一個名爲NSString的類,它可以用於處理字對象,NSString是由unichar字符組成。
2>、創建方式字符串:在字符串開關放置一個@字符
如:@”Programming is fun”
3>、創建字符串對象要求:需要添加 #import<Foundation/NSString.h>
4>、定義方式,如:NSString *str=@”Programming is fun”;
2、NSLog函數
1>、NSLog函數是用於輸出的函數。
2>、NSLog格式字符%@不僅能顯示NSString對象,而且可以顯示其它對象。
3>、NSLog調用,如:NSLog(@”%@”,str);
4>、NSLog格式式字符%@可以顯示數組、字典和集合的全部內容。還可以通過重載類繼承的方法,顯示你自己的對象。
3、可變對象與不可變對象
1>、不可變對象:創建字符串對象時,就創建了一個內容不可更改的對象。
2>、Lenght方法: 可用來對字符串中的字符進行計數。
3>、isEqualToString: 方法用檢測兩個字符串是否相等。
4>、uppercaseString: 方法將字符串轉換成大寫字符。
5>、lowercaseString: 方法將字符串轉換成小寫字符。
6>、substringFormIndex: 方法返回一個字符串,它從接收者的指定索引的字符開始,直到字符串結尾。
7>、substringWithRange: 方法接受一個範圍,並返回指定範圍的字符。
8>、rangeOfString: 方法在接收者中找到指定的字符串,則返回的範圍精確地指定找到它的位置。如果沒有找到這個字符串,則返回範圍的location成員被設爲NSNotFound。
如:subRange=[str rangeOfString:@”is fun”];
4、可變字符串
1>、介紹:NSMutableString類可以用來創建可以更改字符的字符串對象。因爲該類是NSString類的子類,所以可以使用NSString類的所有方法。
2>、聲明方式,如:NSMutableString *mstr;
3>、將mstr變量定義爲一個變量,如:
Mstr=[NSMutableString stringWithString:str];
4>、insertSring:atIndex: 方法將指定的字符串插入接收者中,插入點從指定的索引開始。
5>、appendString: 方法將一個字符串插入另一字符串結尾。
6>、deleteCharactersInRange: 方法可以刪除字符串中指定數目的字符。
7>、setString: 方法可用來直接設置可變字符串的內容。
8>、replaceCharactersInRange: 方法用另一個字符串替換這個字符串中的部分字符。
9>、replaceOccurrencesOfString:WithString:options:range: 方法用來執行搜索並全部替換。
5、所有對象去哪了
1>、所有由NSString和NSMutableString方法生成並返回的字符串對象,被創建者添加到自動釋放池,將在系統釋放池時全部釋放。如果開發的程序創建了許多臨時對象,則內存會累積起來,這時要採取不同的策略,在程序執行時釋放內存,而不是在程序結尾釋放。
2>、NSURL對象:url是一個NSURL對象,path是指明文件路徑的NSSring對象。
三、數組對象
1、介紹:Foundation數組是有序的對象集合。一個數組中的元素都是一個特定類型,但是這是是必需的。數組對象分爲可變數組對象和不可變數組對象:不可變數組是由NSArray類處理的,而可變數組是由NSMutableArray處理。後者是前者的子類。
2、使用要求:必須包含#import<Foundation/NSArray.h>
3、arrayWithObject: 方法用來創建使用一列對象作爲元素的數組。
4、objectAtIndex: 方法用於提取數組對象中指定元素。
5、arrayWithCapactity: 方法分配NSMutableArray的素數。
6、addObject: 方法向數組的末尾添加一個對象。
四、詞典對象
1、概念:dictionary是由鍵-對象對組成的數據集合。
2、簡介:詞典可以是固定的,也可以是可變的。可變詞典中記錄可動態的添加和刪除。可基於特定的鍵對詞典搜索,也可以枚舉它們的內容。
3、使用要求:需要添加 #import<Foundation/NSDictionary.h>
4、可變詞典
1>、聲明方式,如:NSMutableDictionary *glossary;
2>、setObject:forKey: 方法將鍵-值添加到詞典中。
3>、objectForKey: 方法檢索給定鍵的值。
5、枚舉詞典
1>、概念:鍵從詞典中依次被檢索,沒有特定順序。
2>、檢索方式,如:
for(NSString *key in glossary)
NSLog(@”%@%@”,key,[glossary objectForKey:key]);
注:詞典中的鍵是單值的,儘管它們通常是字符串,但不可以是任何類型。
五、集合對象
1、概念:以數組、字典和集的形式使用成組的對象,set是一組單值對象集合,它可以是可變的,也可以是不可變的。
2、可執行操作:搜索、添加、刪除集合中的成員(公用於可變集合),比較兩個集合,計算兩個集合的交集與並集等。
3、使用要求:需要添加 #import<Foundation/NSSet.h>
4、基本方法
1>、setWithObject: 使用一列對象創建新集合。
2>、isEqualToSet: 確定兩個集合是否相等。
3>、addObject: 添加對象到集合中。
4>、removeObject: 從集合中刪除對象。
5>、interset: 用於計算兩個集合的交集。
6>、union: 用於計算兩個集合的並集。