Мне нужно использовать этот код Swift 2 в Swift 3 и 4:
func reportMemory() -> String {
let name = mach_task_self_
let flavor = task_flavor_t(TASK_BASIC_INFO)
let basicInfo = task_basic_info()
var size: mach_msg_type_number_t = mach_msg_type_number_t(MemoryLayout.size(ofValue: basicInfo))
let pointerOfBasicInfo = UnsafeMutablePointer<task_basic_info>.allocate(capacity: 1)
let kerr: kern_return_t = task_info(name, flavor, UnsafeMutablePointer(pointerOfBasicInfo), &size)
let info = pointerOfBasicInfo.move()
pointerOfBasicInfo.deallocate(capacity: 1)
if kerr == KERN_SUCCESS {
return String(format: "Mem: %0.2fMB Used", Float(info.resident_size)/(1024.0*1024.0))
} else {
print("error with task info(): \(mach_error_string(kerr))")
return "Mem: Unknown"
}
}
Как избежать ошибки «init» недоступен: используйте «withMemoryRebound (to :acity: _)» при использовании UnsafeMutablePointer?