美文网首页
iOS开发 数组、字典、字符串初始化你真的知道么?

iOS开发 数组、字典、字符串初始化你真的知道么?

作者: 没穿秋裤 | 来源:发表于2018-08-29 19:23 被阅读0次
  • 今天突发奇想,要搞一下属性的各个参数混用的情况。

1. 创建不可变 数组、字典、字符串,不管用类方法创建还是对象方法创建,只要是创建空的对象, 发现得到的地址都是一样的,由此可以知道初始化空的对象的时候会生成一个单例,

    NSArray *a = [NSArray array];         //0x60000001e3f0 
    NSArray *b = [NSArray array];         //0x60000001e3f0
    NSArray *c = [NSArray array];         //0x60000001e3f0
    NSArray *e = [[NSArray alloc] init];  //0x60000001e3f0
    NSArray *d = [NSArray array];         //0x60000001e3f0
    NSArray *f = [[NSArray alloc] initWithObjects:@"1", nil];//0x60000000f660
    NSArray *g = [[NSArray alloc] initWithObjects:@"1", nil];//0x60000000f600
    NSLog(@"%p-%p-%p-%p-%p-%p-%p",a,b,c,e,d,f,g); 

2. 创建可变 数组、字典、字符串,都会申请不同的内存空间。

    NSMutableString *a = [NSMutableString string];        //0x600000244ec0
    NSMutableString *b = [NSMutableString string];        //0x600000244b00
    NSMutableString *c = [NSMutableString string];        //0x600000244b90
    NSMutableString *d = [NSMutableString string];        //0x600000243ed0
    NSMutableString *f = [[NSMutableString alloc] init];  //0x6000002431b0
    NSLog(@"%p-%p-%p-%p-%p",a,b,c,d,f);

相关文章

网友评论

      本文标题:iOS开发 数组、字典、字符串初始化你真的知道么?

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