2016-11-14 97 views
0

我不知道为什么我收到此错误上host_processor_sets迅速获取错误3

var list       = [ProcessInfo]() 
var psets      = processor_set_name_array_t.allocate(capacity: 1) 
var pcnt: mach_msg_type_number_t = 0 

var result = host_processor_sets(machHost, &psets, &pcnt) 

的最后一条语句给出:

不能通过类型的不可变的值作为INOUT参数

回答

0

功能host_processor_sets被导入到Swift中:

func host_processor_sets(
    _ host_priv: host_priv_t, 
    _ processor_sets: UnsafeMutablePointer<processor_set_name_array_t?>!, 
    _ processor_setsCnt: UnsafeMutablePointer<mach_msg_type_number_t>! 
) -> kern_return_t 

(从Xcode中的快速帮助获得。)

当你发现在导入C-功能的UnsafeMutablePointer<T>!,通常声明T类型的变量,并传递作为一个INOUT参数。

因此,您需要声明processor_set_name_array_t?mach_msg_type_number_t的变量。

var psets: processor_set_name_array_t? = nil 
var pcnt: mach_msg_type_number_t = 0 
var result = host_processor_sets(machHost, &psets, &pcnt)