Foundation框架 簡介
Foundation框架是Cocoa編程、iOS編程的基礎框架侮措,它包括字符串德崭、集合、日期弟胀、時間等基礎.
目錄如下:
- NSString和NSMutableString
- 代表日期楷力、時間的NSDate]
- NSCopying和NSMutableCopying
- NSArray和NSMutableArray
- NSSet和NSMutableSet和NSCountedSet
- NSOrderedSet和NSMutableOrderedSet
- NSDictionary和NSMutableDictionary
1. 創(chuàng)建字符串
NSString大致功能
- 創(chuàng)建字符串:創(chuàng)建字符串既可使用init開頭的實例方法喊式,也可以使用string開頭的類方法,當然也可以直接用@“”的形式給出字符串直接量萧朝;
- 讀取文件或網(wǎng)絡URL來初始化字符串岔留;
- 將字符串內(nèi)容寫入文件或URL;
- 獲取字符串長度检柬,即可獲取字符串包括的字符個數(shù)献联,也可以獲取字符串包括的字節(jié)個數(shù);
- 獲取字符串中的字符或字節(jié)何址,既可獲取指定位置的字符里逆,也可以獲取指定范圍的字符;
- 獲取字符串對應的C風格字符串用爪;
- 連接字符串原押;
- 分隔字符串;
- 查找字符串內(nèi)對象的字符和子串偎血;
- 替換字符串诸衔;
- 比較字符串;
- 字符串大小比較颇玷;
- 對字符串中的字符進行大小寫替換
//typedef unsigned short定義
unichar data[6] = {97,98,99,100,101,102};
//使用unicode數(shù)值數(shù)組初始化字符串
NSString* str1 = [[NSString alloc]initWithCharacters:data length:6];
NSLog(@"%@",str1);
char* cstr = "Hello iOS!";
//將C風格的字符串轉換成NSString對象
NSString* str2 = [NSString stringWithUTF8String:cstr];
NSLog(@"%@",str2);
//將字符串寫入自定文件
[str2 writeToFile:@"myFile.txt" atomically:YES encoding:NSUTF8StringEncoding error:nil];
//讀取文件內(nèi)容笨农,用文件內(nèi)容初始化字符串
NSString* str3 = [NSString stringWithContentsOfFile:@"myFile.txt" encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",str3);
2. NSString的常用功能
NSString* str = @"Hello”;
NSString* str1 = @"hello";
NSString* book = @"《瘋狂iOS講義》”;
1. 在str后面追加固定的字符串
//原來的字符串對象并不改變,只是將新生成的字符串重新賦給str指針變量
str = [str stringByAppendingString:@",iOS!"];
NSLog(@"%@",str);//Hello,iOS!
2. 獲取字符串中的字符
unichar OCChar = [str characterAtIndex:1];
NSLog(@"%C",OCChar);//e
3. 獲取字符串對象的C風格字符串
const char* cstr = [str UTF8String];
NSLog(@"獲取的C字符串%s",cstr);//獲取的C字符串Hello,iOS!
4. 比較兩個字符串是否相等 相等返回1(yes),不相等返回0(no)
BOOL ret = [str isEqualToString:str1];
NSLog(@"%d",ret);//0
5.比較字符串
//大小帖渠,compare:方法返回NSComparisonResult枚舉值
//該枚舉類型包含NSOrderedAscending谒亦、NSOrderedSame、NSOrderedDescending三個值
//分別代表調(diào)用compare:的字符串位于被比較字符串小空郊、相等份招、大
switch ([str compare:str1]) {
case NSOrderedAscending:
NSLog(@"str小于str1");//str小于str1
break;
case NSOrderedSame:
NSLog(@"str與str1相等");
break;
case NSOrderedDescending:
NSLog(@"str大于str1");
break;
default:
break;
}
//不區(qū)分大小的比較
NSComparisonResult result = [str caseInsensitiveCompare:str1];
NSLog(@"%ld",result);
6. 在str后面追加帶變量的字符串
str = [str stringByAppendingFormat:@"%@是一本非常不錯的圖書.",book];
NSLog(@"%@",str);//Hello,iOS!《瘋狂iOS講義》是一本非常不錯的圖書.
7. 獲取字符串的字符個數(shù)
NSLog(@"str的字符個數(shù):%lu",[str length]);//str的字符個數(shù):30
8. 獲取str按UTF-8字符集解碼后字節(jié)數(shù)
//
NSLog(@"str按UTF-8字符集解碼后字節(jié)數(shù):%lu",[str lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);//str按UTF-8字符集解碼后字節(jié)數(shù):62
9. 獲取str前10個字符組成的字符串
NSString* s1 = [str substringToIndex:10];
NSLog(@"%@",s1);//Hello,iOS!
10. 獲取str從第6個字符開始,與后面的字符組成的字符串
NSString* s2 = [str substringFromIndex:6];
NSLog(@"%@",s2);//iOS!《瘋狂iOS講義》是一本非常不錯的圖書.
11. 獲取str從第6個字符開始渣淳,到第15個字符組成的字符串
NSString* s3 = [str substringWithRange:NSMakeRange(6, 15)];
NSLog(@"%@",s3);//iOS!《瘋狂iOS講義》是一
12. 獲取iOS在str中出現(xiàn)的位置
//獲取iOS在str中出現(xiàn)的位置 從前向后遍歷
NSRange pos = [str rangeOfString:@"iOS"];
NSLog(@"iOS在str出現(xiàn)的開始位置:%ld脾还,長度為:%ld",pos.location,pos.length);//iOS在str出現(xiàn)的開始位置:6伴箩,長度為:3
//獲取iOS在str中出現(xiàn)的位置 從后向前遍歷
NSRange pos1 = [str rangeOfString:@"iOS" options:NSBackwardsSearch];
NSLog(@"iOS在str出現(xiàn)的結束位置:%ld入愧,長度為:%ld",pos1.location,pos1.length);//iOS在str出現(xiàn)的開始位置:6,長度為:3
13. 將str的所有字符轉為大寫
str = [str uppercaseString];
NSLog(@"%@",str);//HELLO,IOS!《瘋狂IOS講義》是一本非常不錯的圖書.
14. 將str的所有字符轉為小寫
str = [str lowercaseString];
NSLog(@"%@",str);//hello,ios!《瘋狂ios講義》是一本非常不錯的圖書.
15. 前綴后綴
//前綴
BOOL ret1 = [str hasPrefix:@"He"];
NSLog(@"%d",ret1);
//后綴
BOOL ret2 = [str hasSuffix:@"."];
NSLog(@"%d",ret2);
3. 可變字符串(NSMutableString)
NSString類是不可變的類嗤谚,即一旦NSString對象被創(chuàng)建棺蛛,包含在這個對象中的字符串序列是不可改變的,直至這個對象被銷毀很钓。
NSSMutableString對象則代表一個字符序列可變的字符串九默,而且NSMutableString是NSString的子類绷跑,NSString包含的方法,NSMutableString都可直接使用。
通過方法改變NSMutableString的字符序列:
NSString* book = @"《瘋狂iOS講義》”;
1. 創(chuàng)建一個NSMutableString對象
NSMutableString* str = [NSMutableString stringWithString:@"Hello"];
2. 追加固定字符串
//字符串所包含的字符序列本身發(fā)生改變终畅,因此無須重新賦值
[str appendString:@",iOS!"];
NSLog(@"%@",str);//Hello,iOS!
3. 追加帶變量的字符串
//字符串包含的字符序列本身發(fā)生了改變籍胯,因此無需重新賦值
[str appendFormat:@"%@這是一本非常不錯的圖書。",book];
NSLog(@"%@",str);//Hello,iOS!《瘋狂iOS講義》這是一本非常不錯的圖書离福。
4. 在指定位置插入字符串
//字符串包含的字符序列本身發(fā)生了改變杖狼,因此無需重新賦值
[str insertString:@"fkit.org" atIndex:6];
NSLog(@"%@",str);//Hello,fkit.orgiOS!《瘋狂iOS講義》這是一本非常不錯的圖書。
5. 刪除從位置6到位置18的所有字符
[str deleteCharactersInRange:NSMakeRange(6, 12)];
NSLog(@"%@",str);//Hello,《瘋狂iOS講義》這是一本非常不錯的圖書妖爷。
6. 將從位置6到位置15的字符串替換成Objective-C
[str replaceCharactersInRange:NSMakeRange(6, 9) withString:@"Objective-C"];
NSLog(@"%@",str);//Hello,Objective-C這是一本非常不錯的圖書蝶涩。