如何将变量而不是变量值的引用放入数组中

时间:2015-04-04 18:33:41

标签: arrays swift pointers

在swift中如何将指针放入数组?

我有几个数组,在所有数组中我引用了一个变量,当我更改它时,我需要在所有其他数组中更新。

编辑: 基本上我有一个数组

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

我想要做的是添加一个指向数组的指针,这就像

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

指针指向一个在许多数组中有特征的字符串,如果在一个数组中更新它的值,我希望它在所有数组中更新

我如何申报?

由于

1 个答案:

答案 0 :(得分: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))