只运行一次代码

mot*_*tox 3 iphone objective-c ios

我无法弄清楚如何ViewDidLoad()方法中运行一部分代码.我不希望在应用程序再次启动之前执行该部分代码.谢谢你的帮助!

Alu*_*num 12

你可以dispatch_once在你的viewDidLoad:

static dispatch_once_t once;
dispatch_once(&once, ^
{
    // Code to run once
});
Run Code Online (Sandbox Code Playgroud)

这将使代码只运行一次,直到您退出并关闭应用程序.


ZeM*_*oon 6

您还可以设置一个 BOOL 标志来检查代码是否已执行。

在 .m 文件中的实现上方设置 bool:

static BOOL codeExecuted = NO;
Run Code Online (Sandbox Code Playgroud)

在 -viewDidLoad() 方法中:

if (!codeExecuted)
{

    //run code
    codeExecuted = YES;

}
Run Code Online (Sandbox Code Playgroud)