gpt4 book ai didi

swift - 在 Swift 中存储指向变量的指针

转载 作者:行者123 更新时间:2023-11-30 12:47:23 24 4
gpt4 key购买 nike

我有许多类,每个类都有许多 Date 类型的变量。例如

class MyClass1 {
var dt1: Date
var dt2: Date
var dt3: Date
}
class MyClass2 {
var dt1: Date
var dt2: Date
var dt3: Date
}

我想创建一个列表,其中包含对任一类实例中的日期的引用。例如它可能包含对 MyClass1 实例中 dt1 的引用,以及对 MyClass2 实例中 dt2 的引用。我将使用此列表将这些日期设置为特定值。

我可以通过存储带有指示引用日期的标志的类实例(例如使用枚举)来了解如何做到这一点。然后我可以使用开关来确定要设置的日期。但是,有没有更快速的方法来做到这一点?我理想的做法是将每个日期变量视为一个对象,我可以将其添加到列表中,然后设置为不同的值。

我还需要对一些数值变量执行此操作,因此需要一种适用于两者的方法。

最佳答案

您本质上希望将Date(这是一个struct)视为引用类型(即class)。有一个简单的方法可以使用包装类来完成此任务:

class DateRef {
let date: Date

init(_ date: Date) {
self.date = date
}
}

class MyClass1 {
var dt1: DateRef
var dt2: DateRef
var dt3: DateRef

init(dt1: Date, dt2: Date, dt3: Date) {
self.dt1 = DateRef(dt1)
self.dt2 = DateRef(dt2)
self.dt3 = DateRef(dt3)
}
}

// same for MyClass2 ...

let m1 = MyClass1(dt1: Date(), dt2: Date(), dt3: Date())
let m2 = MyClass2(dt1: Date(), dt2: Date(), dt3: Date())

var dates = [m1.dt2, m2.dt1]

关于swift - 在 Swift 中存储指向变量的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41463453/

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