我无法弄清楚如何在ViewDidLoad()
方法中运行一部分代码。我不希望在应用程序再次启动之前执行该部分代码。谢谢你的帮助!
答案 0 :(得分:12)
您可以在dispatch_once
:
viewDidLoad
static dispatch_once_t once;
dispatch_once(&once, ^
{
// Code to run once
});
这将使代码只运行一次,直到您退出并关闭应用程序。
答案 1 :(得分:3)
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
<#code to be executed once#>
});
您可以使用dispatch_once
指定某个代码块仅对该应用程序的运行执行一次
答案 2 :(得分:3)
您还可以设置BOOL标志以检查代码是否已执行。
在.m文件中的实现之上设置bool:
static BOOL codeExecuted = NO;
-viewDidLoad()方法中的:
if (!codeExecuted)
{
//run code
codeExecuted = YES;
}
答案 3 :(得分:1)
然后你应该把你的代码放在Application delegate
中 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Your code will run only once per launch
}
答案 4 :(得分:1)
以下代码可满足您的需求:
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
<#code to be executed once#>
});
答案 5 :(得分:0)
在您应用的appdelegate方法中添加该代码didfinishlaunchingwithoptions:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Your code will run only when app is launched
}