指針的指針解釋-&NSString的其他用法
1,指向指針的指針
//要接收指針的地址,其實指針的指針就是指針的地址,所以參數要用指針的指針
void test(NSString **str2){
//改變指針地址的指向
*str2 = @"123";
}
int main(int args,char *argv[]){
NSString *str = @"456";
//要改變指針的值,其實就是改變指針地址的指向,所以我們要傳的是指針的地址,即 &str;
test(&str);
NSLog(@"%@",str);
return 0;
}
2,NSString的導出(寫入文件)
void test3(){
NSString *str = @"123123123這是一個導出的字符串";
//文件不存在會自動創建,文件夾不存在則不會自動創建會報錯
NSString *path = @"/Users/gx/Desktop/test_export.txt";
NSError *error;
//atomically原子性,YES會創建一個臨時文件,當寫完進臨時文件的時候會剪切到目標文件;NO的話是直接寫到目標文件,即使寫入一部分數據也會創建目標文件,不安全
//編碼格式不對的話也會導致錯誤,高的編碼一般會包含低的編碼
//error跟java的異常差不多,如果有異常的話會把錯誤賦值給error
[str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];
if (error) {
NSLog(@"導出失敗:%@",error);
}else{
NSLog(@"導出成功");
}
}
3,NSString的搜索
NSString *string1 = @"This is a string";
NSString *string2 = @"string";
NSRange range = [string1 rangeOfString:string2];
int location = range.location;
int leight = range.length;
NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"Location:%i,Leight:%i",location,leight]];
NSLog(@"astring:%@",astring);
[astring release];
4,字符串的截取
NSString *a = @"123456.txt";
//判斷前綴
[String1 hasPrefix:@"NSString"];
//判斷後綴
[String1 hasSuffix:@".txt"];
NSString *str = @"123456";
//獲取從0開始的後面的字符 只能到字符串最後未結束
NSString *str1 = [str substringFromIndex:0];
//獲取從0開始到3的之間的字符 只能從0開始
NSString *str2 = [str substringToIndex:3];
//獲取從0到3的之間的字符 可以自定義開始和結束
NSString *str3 = [str substringWithRange:NSMakeRange(0, 3)];