iOS编码ARC之后不需要管理内存了吗?

iOS编码ARC之后真的不需要管理内存了吗?答案是不需要。

下边看第一段代码:

#import@interface Model : NSObject

@property (nonatomic,copy) NSString *name;

@end

@implementation Model

- (void)dealloc{

NSLog(@"阵亡");

}

@end


iOS编码ARC之后不需要管理内存了吗?_第1张图片
执行代码
iOS编码ARC之后不需要管理内存了吗?_第2张图片
结果

说明问题:

在for循环中,没进行一次都会把局部变量给回收。

下边看第二段代码:

iOS编码ARC之后不需要管理内存了吗?_第3张图片
加载图片

+ (nullable UIImage *)imageNamed:(NSString *)name;   

这个方法会把图片缓存进内存中,不断的缓存导致内存紧张。尽管局部变量已经回收。

下边看第三段代码:

iOS编码ARC之后不需要管理内存了吗?_第4张图片
加载之后就释放

说明:

这次尽管使用的方法,但是每次都用自动释放池对缓存进行了清除,这是首内存就正常了。

结论,在ARC中,有时候我们还得用到自动释放池来优化内存。

你可能感兴趣的:(iOS编码ARC之后不需要管理内存了吗?)