在全新安装时将值设置为变量 - swift

时间:2016-06-02 07:41:05

标签: ios swift

我想将值设置为bool变量,在首次单击按钮后使其消失。该按钮应仅在重新安装或更新时可见。现在我正在使用NSUserDefaults。 但是我第一次在哪里设置它?

我在AppSettings初始化函数中执行此操作,但仍然会重置:

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setBool(true, forKey: kFirstTime)
defaults.synchronize()

在cellForRowAtIndexPath里面:

if defaults.boolForKey(kFirstTime) == true
{
     cell.newButton.hidden = false
}
else if defaults.boolForKey(kFirstTime) == false
{
     cell.newButton.hidden = true
}
cell.configureCell()

我想让密钥在每次点击后都返回false

2 个答案:

答案 0 :(得分:1)

如果删除

defaults.setBool(true, forKey: kFirstTime)

并更改

if defaults.boolForKey(kFirstTime) == true

    if defaults.boolForKey(kFirstTime) == nil {
        defaults.setBoolForKey(false, forKey: kFirstTime)
        //etc
    }

那应该有用。

不是将值设置为true,而是只检查是否存在任何值,这将是全新安装的情况。

要检查更新,您需要扩展您的方法以存储类似上次使用的版本的值,然后在更新的代码中添加一些内容以检查此内容以及nil值以适应来的人在版本1.0以外的版本

答案 1 :(得分:0)

如果您想在更新时显示按钮,那么NSUserDefault中的密钥应该与您的APP版本相关。

if let value = defaults.boolForKey(keyWithVersion) {
    // have value 
} else {
    // no value means first time enter this version of APP
}