【语法】NSString
NSString?
【1.NSString 的創建】
1.Objective-C語言中定義字符串的幾種方式
1 void stringCreate() 2 { 3 //c語言方式 4 // char *s="A string!"; 5 6 //第一種方式 7 NSString *str11=@"A String!"; //這種方式創建出來的是不需要釋放內存 8 //第二種方式 9 NSString *str22=[[NSString alloc] init]; 10 str22=@"A string"; 11 //釋放 12 //[str2 release]; 13 14 //第三種方式 15 NSString *str3=[[NSString alloc] initWithString:@"A String!"]; 16 17 //這種方式不需要管理內存,因為沒有alloc 18 str3=[NSString stringWithString:@"A String!"]; 19 //釋放 20 //[str3 release]; 21 22 //第四種方式 23 NSString *str4=[[NSString alloc] initWithUTF8String:"A String!"]; 24 //釋放 25 //[str4 release]; 26 str4=[NSString stringWithUTF8String:"A String!"]; 27 28 29 //第五種方式 30 NSString *str5=[[NSString alloc] initWithFormat:@"My age is %i and height is %.2f",19,1.55f]; 31 32 NSLog(@"str5 is %@",str5); 33 //釋放 34 //[str5 release]; 35 NSString *str6=[NSString stringWithFormat:@"My age is %i and height is %.2f",19,1.55f]; 36 37 }?
2.Objective-C中從文件中(例如*.txt中讀出內容)。
1 void stringCreate2() 2 { 3 4 5 //從文件中讀取文本 6 NSString *path=@"/Users/haiyefeng/Desktop/test.txt";//這里有不同的編碼方式和解碼方式 7 NSString *str1=[NSString stringWithContentsOfFile:path]; 【1】這里標紅的是傳輸方式,也就是以文件類型 8 NSLog(@"%@",str1);?
3.Objective-C 中對文件的讀取如果不能讀取所使用拋異常的方式。
【1】首先要定義一個error來作為存儲錯誤,如果error有值,那就是有錯,沒值,就沒錯。
【2】定義一個字符串地址path來保存文件路徑。
【3】通過 ? ?NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error1 ? ? 來讀取是否能讀取
【4】通過下面的判斷,如果error有值,就有錯,否則沒有。
1 //拋異常 2 //定義一個error變量,主要來用來判斷是否異常,如果=0,就是沒有錯,有值就是有錯; 3 4 NSString *path=@"/Users/haiyefeng/Desktop/test.txt"; 5 NSError *error1; 6 NSString *str3=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error1]; 7 // stringWithContentsOfFile 的意思是文件的路徑 NSUTF8StringEncoding 是文件的編碼方式 error 是傳入的錯誤,后面的變量要傳入指針地址 8 if(error1==nil) 9 { 10 NSLog(@":讀取文件成功%@:",str3); 11 12 }else 13 { 14 NSLog(@"讀取文件失敗%@",error1); 15 } 164.objective-C讀取文件
NSURL *url=[NSURL URLWithString:@"file:///Users/haiyefeng/Desktop/test.txt"];4 NSString *str2=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];5 NSLog(@"%@",str2);5.Objective-C讀取網頁
1 void stringCreate3() 2 { 3 6 7 //讀取網頁 8 NSURL *url2=[NSURL URLWithString:@"http://www.baidu.com"]; 9 NSString *str3=[NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil]; 10 NSLog(@"%@",str3); 11 12 13 14 }6.Objective-C中將內存地址的內容改變。
?
void test(NSString **str) 【3】通過傳入指針地址的指針地址來改變指針的內容。 { (*str)=@"123"; 【4】將指針地址內容改變為123 }int main(int argc, const char * argv[]) {@autoreleasepool {//這里是改變字符串內容,NSString *s=@"456"; 【1】首先創建一個指針s指向內容為456的字符串test(&s); 【2】調用test方法,將s的地址傳入上面的方法。NSLog(@"%@",s); 【5】輸出,那就是改變了*s的內存地址了。}return 0; }?
?
【2.NSString 的導出】
【1】.首先在路徑【/Users/haiyefeng/Desktop/test.txt】下創建一個test.txt文件。
【2】.使用語句?[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];將字符串str中的內容傳入到該地址上的文件內,如果上面的path路徑中沒有這個文件,就會自動創建一個。【路徑的文件夾路徑不能錯誤,文件名可以沒有】
【3】.[error localizedDescription]這一句是用來簡化報錯的內容。
void stringExport(){NSString *str=@"123456";NSString *path=@"/Users/haiyefeng/Desktop/test.txt";NSError *error;//這樣的做法會覆蓋 原先test.txt中的內容//atomically 中的yes代表要進行原子性操作,也就是會在創建一個中間的臨時文件。//在path中如果文件不存在,也就是例子中的test.txt不存在,比如說*path=@"/Users/haiyefeng/Desktop/test111.txt";那么執行語句就會先創建一個test111.txt文件然后再將值傳入。2.如果文件夾不存在,就不能傳入[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];if(error){NSLog(@"寫入失敗:%@",[error localizedDescription]);//localizedDescription主要是用來減少報錯信息比如本來有3行,有這個就會精簡//寫入失敗后報錯就會報主要信息//寫入失敗:The folder “test.txt” doesn’t exist. }else{NSLog(@"寫入成功");}}?
轉載于:https://www.cnblogs.com/madeininfi/p/3535921.html
總結
以上是生活随笔為你收集整理的【语法】NSString的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 学习笔记_10_Shell编
- 下一篇: APDPlat的系统启动和关闭流程剖析