• Objective


    前言

    在第二天里, 我们学习了OC语言中的三大特性, 封装, 继承, 多态, 那么在今天, 我们主要来学习OC语法中的其他知识.


    开始

    在C语言里, 我们都知道没有字符串的标准写法, 只能用char[]数组, 或者char *的方式来存储字符串, 那么在OC里又是怎么样存储字符串的呢? 有没有专门的类用来存储字符串? 下面让我们一起来探讨一下~~


    例子:

    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    @end
    
    @implementation Person
    @end
    
    int main()
    {
        char *name = "hahaha";
        
        NSLog(@"%s", name);
        return 0;
    }

    上面就是我们常规的字符串写法, 但是到了OC就不一样了, 下面让我们来看看:


    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    @end
    
    @implementation Person
    @end
    
    int main()
    {
        char *name = "hahaha";
        
        NSLog(@"%s", name);
        
        
        NSString *str = @"heiheihei";
        
        NSLog(@"%@", str);
        
        return 0;
    }

    输出结果:

    Cain:3.第三天 Cain$ cc 01-NSString.m -framework Foundation
    Cain:3.第三天 Cain$ ./a.out 
    2015-01-19 15:32:56.028 a.out[19082:2111143] hahaha
    2015-01-19 15:32:56.029 a.out[19082:2111143] heiheihei


    NSString是OC中专门存储字符串的类, 而且它存储方式和C语言的不同, 是用[@" "], 输出用的是[%@], 但效果和C语言是一样.



    那么NSString就只有那么简单吗? 答案肯定是否定的, NSString还有很多方法, 比如字符串拼接:

    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    @end
    
    @implementation Person
    @end
    
    int main()
    {
        int a = 10;
        int b = 20;
        
        NSString *str = [NSString stringWithFormat:@"%d 减去 %d = 10", b, a];
        
        NSLog(@"%@", str);
        
        return 0;
    }

    输出结果:

    Cain:3.第三天 Cain$ cc 01-NSString.m -framework Foundation
    Cain:3.第三天 Cain$ ./a.out 
    2015-01-19 15:38:44.641 a.out[19096:2113635] 20 减去 10 = 10

    这样子也是同样能输出我们想要的结果, 




    在C语言中, 我们如果要获取字符串的长度, 得费一些时间去算, 比如:

    char *name = "嘿嘿aaa";

    长度是9, 一个中文文字长度是3, 加起来是9, 虽然我们知道怎么去算, 但这种算法在我们日常开发中是非常少用到的, 我们不关心它有多长, 我们只关心它有多少个字符, 而NSString就实现了这个功能:

    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    @end
    
    @implementation Person
    @end
    
    int main()
    {
        int a = 10;
        int b = 20;
        
        NSString *str = [NSString stringWithFormat:@"%d 减去 %d = 10", b, a];
        
        NSLog(@"%ld", [str length]);
        
        
        return 0;
    }

    输出结果:

    Cain:3.第三天 Cain$ cc 01-NSString.m -framework Foundation
    Cain:3.第三天 Cain$ ./a.out 
    2015-01-19 15:45:47.827 a.out[19130:2116421] 13


    这也是面向对象的思想, 我想知道你的属性, 我就调用你的一些方法来获得我想知道的东西.



    但由于NSString的方法实在太多了, 这里没法一一介绍, 有兴趣的朋友们, 可以自行去苹果官方文档里查找, 里面还有非常详细的例子, 这次我们就讲到这里, 下次再见~~~

  • 相关阅读:
    static、final、this、super关键
    细节二:参数、引用类型、实例化
    枚举类型
    单例模式
    细节一:字符串、switch、默认值、数组
    类属性和类方法
    装饰器模式
    TreeSet
    可见参数和增强for以及自动拆装箱
    静态导入
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4282844.html
Copyright © 2020-2023  润新知