如何在swift中只运行一段代码?

时间:2015-11-18 19:10:19

标签: ios swift

我想运行一段代码,在第一次启动应用程序时将变量设置为true,然后将其设置为false,以便它不会再次运行。简而言之,它应该在它的一生中只运行一次。我已经尝试了几乎所有的东西,包括dispatch_once_t,但对我来说没有用。 我将我的代码放在viewDidLoad,viewDidAppear等中,但是没有用。任何帮助表示赞赏,谢谢!

1 个答案:

答案 0 :(得分:11)

您需要的是应用启动之间的持久性。幸运的是,这存在并且随NSUserDefaults一起提供。

我会在您的app delegate didFinishLaunching方法中执行以下操作:

let hasLaunchedKey = "HasLaunched"
let defaults = NSUserDefaults.standardUserDefaults()
var hasLaunched = defaults.boolForKey(hasLaunchedKey)

if !hasLaunched {
    defaults.setBool(true, forKey: hasLaunchedKey)
}

// Use hasLaunched

第一次运行应用程序时,密钥将不在默认数据库中,并将返回false。由于它是假的,我们在defaults数据库中保存true的值,并且每次后续运行都会得到一个值true。