目前应用市场使用 settings.bundle 的项目相较于少数,但是在开发过程中可以起到一定的作用,比如打包一次,由用户自行决定切换环境等 以及关于后台登录时长等设置均可以在此进行配置化处理,话不多说,上菜~
相信聪明的你已经迈出第一步了,项目结构中通常不包含settings.bundle配置包,所以首先新建一个
新建后可以看到里面包含的目录结构,看到en.lproj相信你大概猜到了这个是处理国际化业务的地方,我们先进行配置管理,国际化后期再进行梳理,那么我们配置的主要文件就依靠Root.plist了
先点击 Root.plist 打开该文件,然后再点击Preference Items条目的加号,可以看到里面可以添加的类型:Group、Multi Value、Slider、Text Field、Title、Toggle Switch
选择你需要的选项进行添加以下分别为不同的类型所创建的内容
到这里,已经可以创建不同类型的preference了,那么里面有一个非常重要的 Identifier 标志符,你是否有注意到呢??? 这个非常重要哈,设置里处理后的数据我们需要在代码中进行获取进行对应的处理,就需要用到我们再添加preference item时所创建的对应的 Identifier 标识符。Root.plist中的Identifier就是使用NSUserDefaults保存数据时的key值,在代码中使用时,需要保持和此处填写的一致。但是需要特别注意:NSUserDefaults的优先级高于Root.plist,下面我们来看一下如何取值
我们上面分别创建了不同的类型,里面对应不同的Identifier,我们可以在所需要处理的地方进行对应的处理:
NSUserDefaults *standardDef = [NSUserDefaults standardUserDefaults];
// Multi Value 取值如下,其余的参照此方式进行取值即可
NSString *multiValue = [standardDef objectForKey:@"choose_preference"];
当然,也可以进行赋值操作,只需要对应上在Root.plist中所填写的Identifier即可。
如有疑问可以评论或留言,看到了会及时回复👌🏻
加油,你是最pang的 💪🏻
附赠demo,有需要的自行下载