zoukankan      html  css  js  c++  java
  • Foundation框架: 7.NSMutableString的基本认识

    在前面我们讲完了NSString, 对NSString有了一个基本的认识, 知道它是怎么创建, 怎么导入和导出, 现在我们来看看继承于NSStringNSMutableString, Mutable是可变的意思, 那NSMutableString顾名思义就是可变字符串的意思, 那什么时候可变字符串呢, 下面让我们一起来看看:





    例子:

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
        NSMutableString *s1 = [[NSMutableString alloc] initWithFormat:@"name is rose"];
        
        NSString *s2 = [[NSString alloc] initWithFormat:@"name is rose"];
        
        NSLog(@"s1 = %@, s2 = %@", s1, s2);
        
        return 0;
    }
    

    打印出来的结果:

    2015-02-04 14:51:25.830 3.NSMutableString[1163:303] s1 = name is rose, s2 = name is rose
    


    看完这个例子, 有人会疑问, 打印出来的结果不是一样的吗, 那既然是这样子, 为什么还要搞一个子类呢?? 



    别急, 下面然让我们来看看示意图:




    这是我们上面那个例子所示的, 继续往下看:




    而这个呢, 就是NSMutableStringNSString最大的区别, NSMutableString可以直接添加或者删除原来的字符串, 而NSString则不能, 因为它是不可变的, 而图中的s3的做法只是把s2里面的字符串内容直接拷贝过来, 再往后面修改某些内容再返回给NSString对象, 看看下面的例子就知道了:

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
        NSMutableString *s1 = [[NSMutableString alloc] initWithFormat:@"name is rose"];
        
        [s1 appendString:@" jack"];
        
        
        NSString *s2 = [[NSString alloc] initWithFormat:@"name is rose"];
        
        NSString *s3 = [s2 stringByAppendingString:@" jack"];
        
        NSLog(@"s1 = %@, s2 = %@, s3 = %@", s1, s2, s3);
        
        return 0;
    }
    

    打印出来的结果:

    2015-02-04 15:05:46.453 3.NSMutableString[1253:303] 
      s1 = name is rose jack
    , s2 = name is rose
    , s3 = name is rose jack



    看到结果我们就知道了NSMutableStringNSString本质上的区别了, 还有NSMutableString的删除字符串方法:

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[])
    {
        NSMutableString *s1 = [[NSMutableString alloc] initWithFormat:@"name is rose"];
        
        [s1 appendString:@" jack
    "];
        
        NSRange range = [s1 rangeOfString:@"rose "];
        [s1 deleteCharactersInRange:range];
        
        NSLog(@"s1 = %@", s1);
        
        return 0;
    }
    

    打印出来的结果:

    2015-02-04 15:09:13.549 3.NSMutableString[1294:303] s1 = name is jack
    


    还有一个, 由于NSMutableString是继承与NSString的, 所以NSString里面所有的方法都可以使用.



    这就是NSMutableString啦, 好了这次我们就讲到这里, 下次我们继续~~~

  • 相关阅读:
    67 个拯救前端开发者的工具、库和资源
    js常用的工具函数
    npm快捷键
    给bootstrap table设置行列单元格样式
    script标签中type为"text/x-template"或"text/html"
    【转载】Ogre3d 2.1 源码编译安装教程
    【转载】OGRE 2.1 Windows 编译
    【转载】DXUT11框架浅析(4)--调试相关
    【转载】GitHub详解
    【转载】3D/2D中的D3DXMatrixPerspectiveFovLH和D3DXMatrixOrthoLH投影函数详解
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4282809.html
Copyright © 2011-2022 走看看