```
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"];
}
```
```
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"];
}
```
请指教。
打印地址看呗,能看到UImage的时候地址都是那几个,UILabel的时候地址都是不一样的,你写的str的话,地址一直是同一个,要是每次str都不一样的话,那内存地址也是不一样的。
开辟的内存地址决定了你的内存是不是会涨,加上自动释放池就能避免内存升高了。
具体为什么每种类的情况不一样,那就关系到他们各自的底层实现了,我也说不清,得查查资料。