内存溢出:
每个设备都拥有一定内存,但是程序运行时,iOS给每个应⽤程序提供了⼀定的内存,⽤于程序的运⾏。程序中最占内存的就是图⽚、⾳频、视频等资源⽂件。 简单来说,内存溢出就是在程序运行的过程中如果一次需要读取的数据超过这个栈内存大小的话就会出现溢出.所以一般内存管理中,需要生成一个对象释放一个对象,你想对这个对象执行的操作写在生成和释放之间.
内存泄露:
用动态存储分配函数动态开辟的空间,在使用完毕后未释放,结果导致一直占据该内存单元,不能被任何程序再次使用,直到程序结束。即所谓内存泄漏。简单的说就是申请了一块内存空间,使用完毕后没有释放掉。
它的一般表现方式是程序运行时间越长,占用内存越多,最终用尽全部内存,整个系统崩溃。由程序申请的一块内存,且没有任何一个指针指向它,那么这块内存就泄露了。
注意:内存泄漏是指堆内存的泄漏。
野指针:对象内存空间已经被系统回收,仍然使⽤指针操作这块内存。野指针异常是程序crash的主要原因。