gpt4 book ai didi

ios - swift:我可以拥有一个实际上是引用的属性吗?

转载 作者:可可西里 更新时间:2023-11-01 02:26:02 25 4
gpt4 key购买 nike

例如..我想在它的初始化器中将一些字典传递给一个类,我想在我的类中引用这些字典..问题是当我将它们设置为属性时,它们实际上是被复制的,而不是引用。

例子:

var activeDict: [Int: Projectile]
var inactiveDict: [Int: Projectile]

init(inout activeDict: [Int: Projectile], inout inactiveDict: [Int: Projectile]) {
self.activeDict = activeDict
self.inactiveDict = inactiveDict

我想在我的类里面使用 activeDictinactiveDict。我希望它们成为正在传递的原件的引用。

最佳答案

您可以将 UnsafeMutablePointer 存储到字典中,这是一个在 Playground 上测试过的示例:

var dict = ["hejj": 1]

class A<T> {
var myDictRef: UnsafeMutablePointer<T>

init(ref: UnsafeMutablePointer<T>) {
self.myDictRef = ref
}
}

let a = A(ref: &dict)
a.myDictRef.memory["asd"] = 3
a.myDictRef.memory
dict

已更新

在你的情况下使用它:

var activeDict: UnsafeMutablePointer<[Int: Projectile]>
var inactiveDict: UnsafeMutablePointer<[Int: Projectile]>

init(activeDict: UnsafeMutablePointer<[Int: Projectile]>, inactiveDict: UnsafeMutablePointer<[Int: Projectile]>) {
self.activeDict = activeDict
self.inactiveDict = inactiveDict
}

无论何时你想使用 activeDict 或 inactiveDict,你都可以调用指针后面的字典,它们的内存属性如下:

activeDict.memory[YourKey] = YourValue

关于ios - swift:我可以拥有一个实际上是引用的属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28082319/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com