ios 資源釋放

系統級資源(對象) 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;
}
相關文章
相關標籤/搜索