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

2019-03-21  本文已影响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初始化的字符串,需要初始化一段动态内存空间,必须手动释放

上一篇 下一篇

猜你喜欢

热点阅读