zoukankan      html  css  js  c++  java
  • iOS的settings bundle中开关button(Toggle Switch)取不到值的问题

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
    假设认为写的不好请多提意见,假设认为不错请多多支持点赞.谢谢! hopy ;)


    在Xcode7.2中设置App的settings bundle时发现当bundle元素类型为Toggle Switch时,在App里取不到其变化值.

    当中Toggle Switch设置例如以下:

    这里写图片描写叙述

    在代码中以例如以下方式读取其值:

    BOOL isWarp = [defaults boolForKey:kWarpDrive];
    _warpDriveLabel.text = isWarp ?

    @"Engaged":@"Disabled";

    当中kWarpDrive定义例如以下:

    #define kWarpDrive @"warp"

    奇怪的是在settings中改变该开关button的状态,并不能在App中反应出来…确切的说,App中不管开关处在何种状态,总是读出NO值.

    该App的settings bundle还有其它类型的元素,比方文本或多选栏,其它的元素都能够正常读出改变的值,只有Toggle Switch不能够.

    遂改变策略在,App启动时先注冊其相应的值:

    +(void)regDefaultsFromSettingsBundle{
        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
        NSDictionary *dict = @{kWarpDrive:@(YES)};
        [defaults registerDefaults:dict];
        [defaults synchronize];
    }

    注意我仅仅注冊了kWarpDrive相应的值,其它的值并没有管.

    然后在App中能够正常读出开关改变的值了,That’s All!!!

  • 相关阅读:
    机器学习算法
    消息队列
    net core 静态文件
    Startup 和 Middleware(中间件)
    HLS 协议
    Web APIs 基于令牌TOKEN验证的实现
    cyq.data开源
    FluentConsole是一个托管在github的C#开源组件
    数据层全栈式编程架构
    Java NIO 完全学习笔记(转)
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7394830.html
Copyright © 2011-2022 走看看