美文网首页
NSString 的几种初始化方法的区别

NSString 的几种初始化方法的区别

作者: _秃头少女_ | 来源:发表于2019-03-21 15:53 被阅读0次
    NSString * a = @"123";
    NSString * a1 = [NSString stringWithString:@"123"];
    NSString * a2 = [NSString stringWithFormat:@"123"];
    NSString * a3 = [[NSString alloc]initWithString:@"123"];
    NSLog(@"\n a===%p\n a1===%p\n a2=====%p\n a3====%p",a,a1,a2,a3);
    
    

Log:

 a===0x103781078
 a1===0x103781078
 a2=====0x879021054d822492
 a3====0x103781078

a,a1,a3用String声明的字符串,初始化的是常量内存区,常量内存区的地址,只要值相同,占用的地址空间是一致的

a 生成字符串时,不会初始化内存空间,使用结束后不会释放内存
a1是autorelease类型,内存由系统释放
a2用Format初始化的字符串,需要初始化一段动态内存空间,必须手动释放

相关文章

网友评论

      本文标题:NSString 的几种初始化方法的区别

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