Доступная память для iPhone OS

Есть ли функция или константа, определяющая объем доступной памяти для приложения в iPhone OS?

Я ищу независимый от устройства способ (iPod touch, iPhone, iPad), чтобы узнать, сколько памяти осталось у приложения.

Эта функция вернет доступную память в байтах:

#import  #import  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; } 

Нет определенного максимального объема памяти, который может использовать приложение iPhone. Независимо от того, будет ли ваше приложение прекращено из-за нехватки памяти, зависит от того, какие алгоритмы использует ОС и какие другие приложения используют память одновременно (safari, почта и т. Д.).

следующая быстрая функция вернет системную память (RAM) в байтах. он будет возвращать нуль при сбое.

 func systemFreeMemorySize() -> UInt? { let HOST_VM_INFO_COUNT: mach_msg_type_number_t = mach_msg_type_number_t(sizeof(vm_statistics_data_t) / sizeof(integer_t)) let host: host_t = mach_host_self() var pageSize: vm_size_t = vm_size_t() let hostPageSizeKernStatus: kern_return_t = host_page_size(host, &pageSize) guard hostPageSizeKernStatus == KERN_SUCCESS else { NSLog("Error with host_page_size(): " + (String.fromCString(mach_error_string(hostPageSizeKernStatus)) ?? "unknown error")) return nil } var stats: vm_statistics_data_t = vm_statistics_data_t() var count: mach_msg_type_number_t = HOST_VM_INFO_COUNT let kernStatus: kern_return_t = withUnsafeMutablePointer(&stats) { return host_statistics(host, HOST_VM_INFO, host_info_t($0), &count) } guard kernStatus == KERN_SUCCESS else { NSLog("Error with host_statistics(): " + (String.fromCString(mach_error_string(kernStatus)) ?? "unknown error")) return nil } return UInt(stats.free_count) * UInt(pageSize) } 
  • C ++ new int - будет ли он выделять память?
  • Swift: защита против, если пусть
  • В Gradle, как объявить общие зависимости в одном месте?
  • Итерация по двоичному дереву с O (1) Вспомогательным пространством
  • Maven: Должен ли я хранить или удалять объявленные зависимости, которые также являются транзитными зависимостями?
  • Как работает пул автозаполнения NSAutoreleasePool?
  • Указывает ли переменная = null ее на сборку мусора
  • Найти физический адрес таблицы векторов исключений из модуля ядра
  • Как тег отличается от ветки в Git? Что я должен использовать здесь?
  • Как получить список файлов с определенным расширением в данной папке?
  • Адрес памяти переменных в Java
  • Давайте будем гением компьютера.