Проблемы с быстрым указателем с MACH_TASK_BASIC_INFO

Я пытаюсь преобразовать ObjC stackoverflow ответ в Swift и не удается. Похоже, я прохожуUnsafeMutablePointer<mach_msg_type_number_t> когда я должен был проходитьinout mach_msg_type_number_t и я не могу решить мою проблему. Из того, что я понимаю из документации указателя Swift (не очень), они должны быть взаимозаменяемыми ..?

Дальнейшая информация ниже.

Вот цель C:

struct task_basic_info info;
mach_msg_type_number_t size = sizeof(info);
kern_return_t kerr = task_info(mach_task_self(), TASK_BASIC_INFO, (task_info_t)&info, &size);

и вот, насколько я получил в Swift (много строк для более легкой проверки типов)

let name: task_name_t = mach_task_self_
let flavor: task_flavor_t = task_flavor_t(MACH_TASK_BASIC_INFO)
var info: mach_task_basic_info
var size: mach_msg_type_number_t = UnsignedFixed(sizeof(mach_task_basic_info_t))
let kerr = task_info(name, flavor, info as task_info_t, &size)

task_info подпись это:

func task_info(target_task: task_name_t, flavor: task_flavor_t, task_info_out: task_info_t, task_info_outCnt: UnsafeMutablePointer<mach_msg_type_number_t>) -> kern_return_t

и ошибка в последней строке:

Cannot convert the expression's type '(@!lvalue task_name_t, task_flavor_t, task_info_t, inout mach_msg_type_number_t)' to type 'kern_return_t'

Ответы на вопрос(4)

Ваш ответ на вопрос