系統級資源(對象) ARC後 大部分代碼不須要手動釋放,但有些仍是須要本身去手動釋放的。如衆所周知的NSTimer、NSNotification、CGContextRef和CGImageRef等等。緩存
app緩存管理(圖片,文件等) 獲取app最大能使用的空餘空間, 當app達到必定的緩存量時,會收到系統內存告急的通知UIApplicationDidReceiveMemoryWarningNotification 這時候咱們須要釋放cache中必定的資源,採用先進先出的原則,通常保留最大空間使用量的一半。app
從上面也能夠看出 iOS內存管理其實不難。 對iOS系統的資源使用 注意釋放,對緩存的文件使用容器管理,注意移除。code
- (double)getAvailableMemory { vm_statistics_data_t vmStats; mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT; kern_return_t kernReturn = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vmStats, &infoCount); if(kernReturn != KERN_SUCCESS) { return 0.0; } return ((vm_page_size * (vmStats.free_count + vmStats.inactive_count)) / 1024.0) / 1024.0; }