只运行一次代码

时间:2014-03-14 10:15:18

标签: ios iphone objective-c

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

6 个答案:

答案 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

  }