Преобразование использования UnsafeMutablePointer в task_info из Swift 2 в Swift 3/4 - PullRequest
0 голосов
/ 14 января 2019

Мне нужно использовать этот код 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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...