Is there a function or constant defining the amount of available memory for an app in iPhone OS?
I'm looking for a device-independent way (iPod touch, iPhone, iPad) to know how much memory the app has left.
"System" can be widely different sizes, sometimes it's 7GB, but it can also easily be 10GB, 15GB or even 25GB. For example, if you're using a 16GB iPhone, the system would be 4GB while the system for 64GB iPhone would be 9GB. The system storage will also change every times when you make an iOS update.
How to upgrade on your iPhone, iPad, or iPod touch. Go to Settings > [your name] > iCloud > Manage Storage or iCloud Storage. Tap Buy More Storage or Change Storage Plan. Choose a plan and follow the onscreen instructions.
This function will return the available memory in bytes:
#import <mach/mach.h> #import <mach/mach_host.h> natural_t freeMemory(void) { mach_port_t host_port = mach_host_self(); mach_msg_type_number_t host_size = sizeof(vm_statistics_data_t) / sizeof(integer_t); vm_size_t pagesize; vm_statistics_data_t vm_stat; host_page_size(host_port, &pagesize); if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS) NSLog(@"Failed to fetch vm statistics"); natural_t mem_used = (vm_stat.active_count + vm_stat.inactive_count + vm_stat.wire_count) * pagesize; natural_t mem_free = vm_stat.free_count * pagesize; natural_t mem_total = mem_used + mem_free; return mem_free; }
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With