zoukankan      html  css  js  c++  java
  • NSString的创建方法(二)

    上一篇文章我们已经讲解过关于NSString的前三种创建方法, 现在我们来讲另外三种创建的方法, 这三种方法也叫做创建临时字符串.

    这三种方法分别就是:

    stringWithUTF8String:将一个C类型的字符串转换成一个OC的字符串, 和前面提到的initWithUTF8String有些类似, 但是不同的是, 它不使用alloc来创建.

    stringWithFormat:将一个已经初始化的字符串和一些自定义参数返回给字符串对象, 和initWithFormat类似, 但它也不使用alloc来创建.

    stringWithString:将一个已有的a字符串对象复制返回给b字符串对象, 和initWithString类似, 同样不实用alloc来创建.

     

    为什么说这三种方法是临时创建的呢?

    那是因为, 这三种方法不使用alloc initnew来创建, 所以他们的引用计数释放不需要由我们来释放, 和自动释放引用计数类似, 一旦使用完之后就会自动释放.

     

    下面是这三种方法的简单使用例子:

    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            NSString *str = [NSString stringWithUTF8String:"Hello, World"];
            //将C字符串转换成OC的字符串对象
            
            NSString *str2 = [NSString stringWithFormat:@"%d %@ %c", 1, @"Hello", 'R'];
            //使用格式符创建一个临时字符串对象
            
            NSString *str3 = [NSString stringWithString:str];
            //使用一个字符串, 创建另一个字符串.
            
            //PS:使用stringwith创建的字符串对象, 都是属于自动释放字符串对象,所以不需要写release释放.
            
    /*
    注意:字符串从刚开始创建, 无论是使用什么方法, 都是Helloc, World!, 永远不会改变.
    */
            
            
            NSLog(@"
    str = %@
    str = %p", str, str);
            NSLog(@"
    str2 = %@
    str2 = %p", str2, str2);
            NSLog(@"
    str3 = %@
    str3 = %p", str3, str3);
            
        }
        return 0;
    }

    下面是输出的结果:

    2014-10-11 09:38:08.821 TemporaryNSString[556:303] 
    str = Hello, World
    str = 0x100200be0
    2014-10-11 09:38:08.823 TemporaryNSString[556:303] 
    str2 = 1 Hello R
    str2 = 0x100204310
    2014-10-11 09:38:08.823 TemporaryNSString[556:303] 
    str3 = Hello, World
    str3 = 0x100200be0
    Program ended with exit code: 0
  • 相关阅读:
    jdk动态代理底层实现
    SpringMvc执行流程及底层代码流程
    JavaWeb02-JSP数据交互
    JavaWeb01-动态网页
    异常总结
    优雅代码
    flask 脚本迁移语句
    git 拉取分支合并master&&回滚
    创建型设计模式
    基于mybatis的一个分表插件
  • 原文地址:https://www.cnblogs.com/iOSCain/p/4018358.html
Copyright © 2011-2022 走看看