指针的指针解释-&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)];