1

我不知道如何在真实设备或模拟器上启动测试之前更改系统日期时间。你可以帮帮我吗?

4

2 回答 2

1

我认为您实际上无法更改系统时间。您可以做的是提供您自己的类来返回日期并在任何地方使用它来代替 Date 类。在您的自定义课程中,您将能够选择返回您的测试时间或系统时间,具体取决于您是否正在测试。

如果您这样做,您的应用内代码将显示类似的内容,let now = CustomDate()而不是let now = Date().

这个问题在这里已经有了 Objective-C 的答案:Set iPhone date/time within app for testing purpose? .

于 2017-07-24T23:56:29.693 回答
0

这是在 Swift 中执行此操作的简单方法。

类 CustomDate { 静态 var dateOverride:日期?

static func get() -> Date {
    return dateOverride ?? Date()
}

}

然后在您的应用程序中使用Date(),而不是使用CustomDate.get()

在您的测试代码中,设置CustomDate.dateOverride为您喜欢的任何内容,您应该能够在您的应用程序中模拟系统日期更改。但是,在您的应用代码中,切勿设置 dateOverride 以避免出现意外行为

于 2020-11-25T18:44:28.690 回答