iOS开发之 settings.bundle

目前应用市场使用 settings.bundle 的项目相较于少数,但是在开发过程中可以起到一定的作用,比如打包一次,由用户自行决定切换环境等 以及关于后台登录时长等设置均可以在此进行配置化处理,话不多说,上菜~

相信聪明的你已经迈出第一步了,项目结构中通常不包含settings.bundle配置包,所以首先新建一个

新建settings.bundle

新建后可以看到里面包含的目录结构,看到en.lproj相信你大概猜到了这个是处理国际化业务的地方,我们先进行配置管理,国际化后期再进行梳理,那么我们配置的主要文件就依靠Root.plist了

Settings.bundle目录

先点击 Root.plist 打开该文件,然后再点击Preference Items条目的加号,可以看到里面可以添加的类型:Group、Multi Value、Slider、Text Field、Title、Toggle Switch

选择你需要的选项进行添加以下分别为不同的类型所创建的内容

Group 主要显示为分组形势,Title为分组名称
Multi Value为选择器,***需要注意的是Titles和Values需要一一对应,如果未填写可能出现不展示的情况***
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,有需要的自行下载

你可能感兴趣的:(iOS开发之 settings.bundle)