美文网首页
NSString篇

NSString篇

作者: SimpleSJ | 来源:发表于2018-11-22 15:26 被阅读0次

    1.常量字符串与堆字符串

    • 常量区中的字符串只要内容一致, 不会重复创建,与C语言中的一致
    //c中
    char *str = @"aaa";
    
    //oc中
    NSString *str1 = @"sj";
    
    • 堆中字符串对象
    NSString *str = [NSString stringWithFormat:@"ls"];
    

    2.字符串的常用方法以及作用

    • stringWithContentsOfFile:
        /*
         作用:从给定路径的文件中读取字符串
         注意:在OC方法中但凡看到XXXofFile的方法, 传递的一定是全路径(绝对路径)
         */
        NSError *error = nil;
        NSString *str1 = [NSString stringWithContentsOfFile:@"全路径" encoding:NSUTF8StringEncoding error:&error];
    
    • writeToFile:
        /*
         作用:将字符串写入到指定文件
         */
        BOOL flag = [str writeToFile:@"全路径" atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    • stringByAddingPercentEscapesUsingEncoding:
    /*
    作用:对字符串中的中文进行处理,一般用在URL中存在中文的情况下
    */
    NSString *path = @"file:///Users/chuanglian/Desktop/未命名文件夹/sj.txt";
    path = [path stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    • NSURL中的URLWithString: 与fileURLWithPath:
    /*
         注意:如果加载的资源是本机上的资源,那么URL中的主机地址可以省略
         虽然主机地址可以省略,但是需要注意,文件路劲中最前面的/不能省略,文件路径最前面的/代表根路径
    */
    //   NSString *path = @"file://192.168.199.199/Users/chuanglian/Desktop/sj.txt"; 
         NSString *path = @"file:///Users/chuanglian/Desktop/sj.txt";
         NSURL *url = [NSURL URLWithString:path];
    
    /*
    注意:如果是通过NSURL的fileURLWithPath:方法创建URL,那么系统会自动给我们传入的字符串添加协议头(file://),所以字符串中不需要再写file://
    注意:开发中一 般情况下,如果是访问本机的资源,创建URL的时候,建议使用fileURLWithPath方法创建
    因为url不支持中文,如果URL中包含中文,那么无法访问;但是如果是通过fileURLWithString方法创建URL,哪怕URL中包含中文也可以进行访问,系统内部会自动对URL中包含的中文进行处理
    */
    NSString *path = @"/Users/chuanglian/Desktop/sj.txt";
         
    NSURL *url = [NSURL fileURLWithPath:path];
    
    • stringByAppendingPathComponent:
    /*
    作用:给文件路径添加一个目录
    注意: 如果路径后面已经有了/, 那么就不会添加了
    如果路径后面有多个/, 那么会自动删除多余的/, 只保留一个
    */
    NSString *str = @"/User/chuanglian/Desktop/abc";
    NSString *newStr = [str stringByAppendingPathComponent:@"sj.txt"];
    /User/chuanglian/Desktop/abc/sj.txt
    

    3.补充

    C字符串与OC字符串的相互转换

        char *cStr = "sj";
        NSString *str = [NSString stringWithUTF8String:cStr];
        NSLog(@"str = %@", str);
        
        NSString *newStr = @"sj";
        const char *cStr2 = [newStr UTF8String];
    

    相关文章

      网友评论

          本文标题:NSString篇

          本文链接:https://www.haomeiwen.com/subject/trdlqqtx.html