内存管理的理解

简介: 内存管理的理解

1.在非ARC的情况下,谁创建谁释放,当对对象进行alloc,new,retain,copy时,需要调用release或autorelease释放。当引用计数为0的时候,会调用dealloc方法销毁当前对象。

2.在ARC的情况下,任何强指针(strong,retain)指向的对象就会被销毁;任何弱指针(assign)指向的对象就不会被销毁;默认情况下对象都是强指针类型。

3.自动释放池是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来回收统一释放;内存池autoreleasepool是用于管理那些被声明为autorelease的对象,系统中有成千上万个内存池,系统内存不足时,系统会从栈中取最顶层的池子把引用计数为0的对象释放掉,收回的内存給当前应用程序使用。

自动释放池本身销毁的时候,池子里面所有的对象都会做一次release操作。

在使用block的时候,一定要注意不能在block里面直接对对象进行操作,而是要是要使用block或weak进行修饰,避免循环引用,造成内存泄漏。

相关文章
|
9月前
|
存储 程序员 编译器
C++:内存管理
C++:内存管理
91 1
|
6月前
|
存储 编译器 C语言
内存管理【C++】
内存管理【C++】
|
6月前
|
存储 Java C语言
【C++】C/C++内存管理
【C++】C/C++内存管理
|
9月前
|
存储 编译器 Linux
|
9月前
|
C语言 C++ Windows
【C++】:内存管理
【C++】:内存管理
58 0
|
9月前
|
存储 Java C语言
c++内存管理
c++内存管理
73 0
|
存储 C语言 C++
【C++】C&C++内存管理(上)
【C++】C&C++内存管理(上)
|
Linux C++ Windows
【C++】C&C++内存管理(下)
【C++】C&C++内存管理(下)
|
存储 编译器 C++
c/c++内存管理:
c/c++内存管理:
72 1
|
C语言 C++ Windows
内存管理详解
内存管理详解
69 0

热门文章

最新文章