提到一部至少拥有512MB内存和16GB存储空间的机器资源有限,很多资深程序员恐怕要发笑了,可事实确是如此。或许开发iOS应用程序并不像是在内存为48KB的机器上编写复杂的电子表格应用,但是由于iOS具备的图形特性和多种功能,很容易耗光内存。
目前市场上iOS设备的物理内存要么是512MB(iPhone 4s、iPad 2、一代iPad mini、iPod touch 5),要么是1024MB(iPhone 5c、iPhone 5s、iPhone 6、iPhone 6 Plus、iPad Air、 iPad mini Retina),而且以后还会不断加大[ 事实上,iPad Air 2的内存已经达到了2GB。]。很大一部分内存被用于屏幕缓冲区和其他一些系统进程。一般,只有不到一半的内存留给应用程序使用(实际可用内存可能更少,尤其是因为其他应用可能在后台运行)。
虽然这些内存对于小型移动设备来说可能已经足够了,但谈到iOS的内存时,还要考虑另一个因素:现代的计算机操作系统(比如OS X)会将未使用的内存块写到磁盘的交换文件中。这样,当应用程序请求的内存超过计算机的实际可用内存时,它仍然可以正常运行。但是,iOS并不会将易失性内存(比如应用程序数据)写到交换文件中。因此,应用程序的可用内存大小受限于iOS设备中未使用的物理内存空间。
Cocoa Touch提供了一种内置机制,可以在内存不足时通知应用程序。出现这种情况时,应用程序必须释放不必要的内存空间,否则就可能被强制退出。