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

3

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

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

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

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

我想要做的是给数组添加一个指针,这样就像是:
var ExampleArray     : NSMutableArray = [
    0,
    "TestString",
    ["*"],
    9,
    //Pointer Here
]

指针指向一个出现在多个数组中的字符串,如果我在一个数组中更新它的值,我希望它在所有数组中都能更新。
我该如何声明这个指针?
谢谢
1个回答

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))

这个答案足够正确。但值得注意的是,this 只接受指向 Int 的指针(显然)。如果我们使用 UnsafeMutablePointer<Void>,我们可以接受任何类型的指针。不过还是要点赞。 - nhgrif
@nhgrif:收到了。我已经更新了我的答案以反映您的观察。 - Vatsal Manot
我更新了我的问题,我知道这很明显,我肯定想太多了。 - Display Name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接