2016-11-14 55 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)