【语法】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     }
16     

4.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(@"写入成功");
    }


}

 

posted @ 2014-01-28 20:57  太过于漂流  阅读(432)  评论(0编辑  收藏  举报