首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法设置NSUbiquitousKeyValueStore密钥

无法设置NSUbiquitousKeyValueStore密钥
EN

Stack Overflow用户
提问于 2015-08-13 08:43:34
回答 1查看 144关注 0票数 0

我正在编写一些代码来保存用户首选项。

代码语言:javascript
复制
enum CustomSettingsEnum: NSNumber {
    case Off
    case On
}

let someKey = "SOME_KEY"    

func getSettings() -> CustomSettingsEnum {
    var cseBool = Bool?
    var cse: CustomSettingsEnum!
    let settingsExists = NSUbiquitousKeyValueStore.defaultStore().boolForKey(self.someKey)
    if settingsExist {
        // Get the NSNumber and convert that to Bool
    } else {
        cse = CustomSettingsEnum.On
    }
    return cse
}

func setSettings(cse: CustomSettingsEnum) {
    NSUbiquitousKeyValueStore.defaultStore().setObject(cse, forKey: self.someKey)
}

我在调用getSettings()之前调用了setSettings(),但在调用getSettings()时,getSettings()中的settingsExist似乎总是假的。为什么会这样呢?这是保存这些信息的最好方法吗?

EN

回答 1

Stack Overflow用户

发布于 2015-08-13 10:29:43

抱歉,我误解了NSUbiquitousKeyValueStore的函数boolForKey

boolForKey不会检查该键是否存在,但会检查该键的值,该值应该是布尔值。

所以我重写为: enum CustomSettingsEnum: NSNumber { case Off case On }

代码语言:javascript
复制
let someKey = "SOME_KEY"    

func getSettings() -> CustomSettingsEnum {
    var cseBool = Bool?
    var cse: CustomSettingsEnum!
    let settingsExists = NSUbiquitousKeyValueStore.defaultStore().objectForKey(self.someKey)
    if settingsExist != nil {
        // Get the NSNumber and convert that to Bool
    } else {
        cse = CustomSettingsEnum.On
    }
    return cse
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31977737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档