oc-Foundation框架-NSString

NSString是不可变的字符串
1、NSString *str1=@"a string"//这种快速创建的方式是不用管理内存的
2、NSString *str2=[[NSString alloc]init];
     str2=@"a string2";
     [str2 release];
3、NSString *str2=[[NSString alloc]initWithString:@"a string3"];
      [str3 release];
4、NSString *str4=[[NSString alloc]initWithUTF8String:"a string3"];
     [str4 release];//这个是c语言的字符串
5、NSString *str5=[[NSString alloc]initWithFormat:@"a string3"];
      [str5 release];//后面的参数都不怎么用
以上方法都是动态方法,都有对应的静态方法,静态方法创建的都不用管理内存

字符串从文件中读取
void test(){
NSString *path=@"/users/apple/deskdop/test.txt";
NSString *str=[NSString stringWithContentsOfFile:path];
NSLog(@"%@",str);//这个方法已经过期了,不能解析中文,所以不用了
}
void test(){
NSString *path=@"/users/apple/deskdop/test.txt";
NSError *error;
NSString *str=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error];//红色的部分是一个是编码的枚举,这里传的是一个指针的地址
NSLog(@"%@",str);//这个就能正确的解析中文了
//error会自动被赋值,当文件读取成功error就会为空,当有错误的时候error就会被赋值。
}

 

将一个字符串写进一个文件中
NSString *str=@"123456";
    NSError *error1;
    NSString *path=@"/Users/liyang/Desktop/liyang.txt";
    [str writeToFile:path atomically:false        encoding:NSUTF8StringEncoding error:&error1];
    NSLog(@"%@",error1);

atomically:表示是否原子性,原子性得意思就是会将文件内容一点一点的写到一个临时的文件中,写完了过后一次性将这个文件内容拷贝到目标文件中,

非原子性就是一点一点的将这个内容写到目标文件当中

第二种url的方式写
 NSString *str=@"123456liyang李阳";
    NSError *error1;
    NSURL *url=[NSURL URLWithString:@"file:///Users/liyang/Desktop/liyang.txt"];
    [str writeToURL:url atomically:YES encoding:NSUTF8StringEncoding error:&error1];
    NSLog(@"%@",error1);

 

 

 

posted @ 2014-03-19 11:34  离子  阅读(184)  评论(0编辑  收藏  举报