gpt4 book ai didi

ios - 在 prepareForSegue 中执行代码所花费的时间比直到 viewWillAppear 结束所花费的时间更长

转载 作者:行者123 更新时间:2023-11-28 13:11:26 24 4
gpt4 key购买 nike

我有两个 UIViewController。我通过在第一个中使用 segue 来调用第二个。这是我在第一个 Controller 的 prepareForSegue 方法中使用的一些代码,以检查执行 ...some code 需要多长时间:

let start = NSDate()
userDefaults.setObject(start, forKey: "startDate")

...some code

let end = NSDate()
let timeSpentInSegue = end.timeIntervalSinceDate(start) * 1000
println("time Spent In Segue : \(timeSpentInSegue)")

在我的第二个 UIViewController 中,在 viewWillAppear 方法中,我只写了:

let startDate = userDefaults.objectForKey("startDate") as! NSDate
let now = NSDate()
println("appeared in: \(now.timeIntervalSinceDate(startDate))")

startDate 与我在第一个 UIViewController 的 segue 中使用的相同。

这是我在应用程序中从第一个 Controller 转到第二个 Controller 时在控制台输出中得到的内容:

time Spent In Segue : 0.97203254699707
appeared in: 0.0576500296592712

我不明白为什么我花在 segue 上的时间比花在“segue + loading of the 2nd view controller”上的时间还多。这没有意义。

有人可以给我解释一下吗?

最佳答案

这是因为在 segue 期间,viewWillAppear 几乎立即被调用,以便它可以在下一个 View 出现之前设置它。这样一来,下一个屏幕上的元素就不会在 segue 结束时“弹出”以供查看。

尝试在 viewDidAppear 中运行您放置在 viewWillAppear 中的代码。

关于ios - 在 prepareForSegue 中执行代码所花费的时间比直到 viewWillAppear 结束所花费的时间更长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31129726/

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