2015-04-04 57 views
3

在swift中,如何將指針放入數組中?如何將變量而不是變量的值引用到數組中

我有幾個數組,其中我引用了一個變量,當我改變它時,我需要它在所有其他數組中更新。

編輯: 基本上我有一個數組

var ExampleArray  : NSMutableArray = [ 
    0, 
    "TestString", 
    ["*"], 
    9, 
] 

我想要做的是一個指針添加到陣列,因此會像

var ExampleArray  : NSMutableArray = [ 
    0, 
    "TestString", 
    ["*"], 
    9, 
    //Pointer Here 
] 

指針是一個字符串,如果在一個數組中更新其值,我希望它在所有陣列中更新

如何聲明此?

感謝

回答

1

它的字面不能得到任何比這更簡單:

var value: Int = 0 
var array: [UnsafeMutablePointer<Int>] = [] 

withUnsafeMutablePointer(&value, array.append) 

但也許你想存儲多種類型,在這種情況下,以下就足夠了:

var value: Int = 0 
var array: [UnsafeMutablePointer<Void>] = [] 

public func getVoidPointer<T>(inout x: T) -> UnsafeMutablePointer<Void> 
{ 
    return withUnsafeMutablePointer(&x, { UnsafeMutablePointer<Void>($0) }) 
} 

array.append(getVoidPointer(&value)) 
+0

這個答案是正確的。值得注意的是,這隻會接受指向「Int」(顯然)的指針。如果我們使用'UnsafeMutablePointer ',我們可以接受指向任何類型的指針。 +1雖然。 – nhgrif 2015-04-04 18:42:03

+0

@nhgrif:注意。我更新了我的答案以反映您的觀察結果。 – 2015-04-04 18:45:00

+0

我已經更新了我的問題,我知道它的確很明顯,我當然在想它 – 2015-04-11 12:37:20

相關問題