zoukankan      html  css  js  c++  java
  • NSUserDefaults之registerDefaults

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

        NSString *stringValue = [userDefaults objectForKey:@"Key"];

            NSLog(@"stringValue = %@",stringValue);

        在这里stringValue的值为nil,一般地我们都是通过 isEqualToString来判断当前的值是否满足条件,也可以更严格的判断是否为nil来确定@"Key"是否注册.

        BOOL boolValue = [userDefaults objectForKey:@"Key"];

        NSLog(@"boolValue = %i",boolValue);

        在bool下当没有注册@"Key"时得到的为NO,这样是有风险的.所以当判断value前还需要判断key的registerDefault.

        - (void)registerDefaults:(NSDictionary<NSString *, id> *)registrationDictionary;

        API给到的注释为

        /*!

         -registerDefaults: adds the registrationDictionary to the last item in every search list. This means that after NSUserDefaults has looked for a value in every other valid location, it will look in registered defaults, making them useful as a "fallback" value. Registered defaults are never stored between runs of an application, and are visible only to the application that registers them.

         

         Default values from Defaults Configuration Files will automatically be registered.

         */

        从上面的解释可以知道使用该方法时,会在UserDefault中查找已经注册的Key,如果存在当前的Key则返回不再注册.

        下面举一个例子:在didFinishLaunchingWithOptions中

        NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

        [userDefaults registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:@"register",@"Test", nil]];

        NSLog(@"userID = %@",[userDefaults objectForKey:@"Test"]);

        在VC的viewDidLoad中

        NSUserDefaults *user = [NSUserDefaults standardUserDefaults];

        [user setBool:YES forKey:@"Test"];

        1.第一次运行demo时会得到 userID = "register".

        2.第二次运行demo时会得到 userID = 1.

        这说明在第二次执行demo时候,registerDefaults:方法并没有修改 a "fallback" value.

    提高技能如同提升自信心。
  • 相关阅读:
    IronPython初体验
    HOWTO: 部署时附带安装MSDE
    翻译:FileSystemWatcher Tips
    再见了 母校!
    招聘.net开发工程师(2名)和ASP开发工程师(1名)工作地点:北京
    年终感言提纲
    可以不讲,但不可以不懂:英语实用脏话精选
    一个混乱的时期
    异步消息的传递-回调机制
    搞c++的 大家看看
  • 原文地址:https://www.cnblogs.com/chims-liu-touch/p/9121587.html
Copyright © 2011-2022 走看看