+
 新版

iOS为什么循环创建UILabel对象内存会涨,创建UIImage却不会?请大神指教。

追沐 发布于 2019/05/14 14:15
阅读 744
收藏 0

```

    for (int i = 0; i<100000; i++) {

//        //不涨

//        UIImage *image  = [[UIImage alloc] init];

//        NSLog(@"%@",image);

        //涨

        UILabel *label = [[UILabel alloc] init];

//        //不涨

//        NSString *str = @"abc";

//        str = [str stringByAppendingString:@"zxc"];

    }

```

加载中
0
追沐
追沐

请指教。

0
下午雨天的星期三
下午雨天的星期三

打印地址看呗,能看到UImage的时候地址都是那几个,UILabel的时候地址都是不一样的,你写的str的话,地址一直是同一个,要是每次str都不一样的话,那内存地址也是不一样的。

开辟的内存地址决定了你的内存是不是会涨,加上自动释放池就能避免内存升高了。

具体为什么每种类的情况不一样,那就关系到他们各自的底层实现了,我也说不清,得查查资料。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部