我想将值设置为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
答案 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
}