gpt4 book ai didi

ios - 为什么在使用 Storyboard时会反复调用 AwakeFromNib?

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

我有一个 Storyboard应用程序。当第一个 View 在启动时加载时,我有这段代码来实例化我的主后台线程,并且一切正常。

    public override void AwakeFromNib()
{
base.AwakeFromNib();
// Perform one-time initialization in this function

// Create and start the main worker thread
MainBackgroundThread = new Thread(new ThreadStart(MainLoop.RunWorker));
MainBackgroundThread.Start();
}

但是,当用户转到另一个 View 然后通过 segue 返回到第一个 View 时,AwakeFromNib() 将再次被调用。我认为它应该只被调用一次...我从哪里开始我的主后台线程以便它只被启动一次?

最佳答案

AwakeFromNib 将在每次从 Storyboard/segue 加载该 View 的新实例时调用。如果您在 Storyboard 中继续,您应该期望 AwakeFromNib 每次都会被调用,因为您实际上是从 nib 对象创建 View 的新实例。如果你想启动一个后台线程,你可以尝试这样的事情:

public override void AwakeFromNib()
{
static NSThread * thread;

base.AwakeFromNib();
// Perform one-time initialization in this function

// Create and start the main worker thread
if(!thread)
{
thread = new Thread(new ThreadStart(MainLoop.RunWorker));
}

MainBackgroundThread = thread;
MainBackgroundThread.Start();
}

关于ios - 为什么在使用 Storyboard时会反复调用 AwakeFromNib?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669688/

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