有一种情况:
for (int i = 0; i < 1000000000; i++) { NSString *s = @"ABC"; s = [s lowercaseString]; s = [s stringByAppendingString:@"ac"]; NSLog(@"%@", s); }
运行, 内存暴涨!!!!!!
这情况下, 给循环体里面的操作加一个 释放池 即可
for (int i = 0; i < 1000000000; i++) { @autoreleasepool { NSString *s = @"ABC"; s = [s lowercaseString]; s = [s stringByAppendingString:@"ac"]; NSLog(@"%@", s); } }
即每次执行完之后, 系统会自动帮我们立即释放, 这就不会使内存暴涨了
时间: 2024-11-05 02:28:42