用户首选项NSUserDefaults

用户首选项是用来保存和记录用户在操做应用的过程作作出的一些选择或设置。相似Android开发中的SharedPreference,能够存储一些数据,但基本都是简单类型的数据,主要做用都是存储一些用户设置数据,好比是不是首次登录,就能够设置一个布尔类型的变量,设值为true或false。


NSUserDefaults的几个重要方法: 框架

standardUserDefaults:建立共享默认设置对象的类方法(Java中的静态方法,单例) iphone

objectForKey:返回键对象的实例方法 ide

setObject: forKey:以指定的键设置值的实例方法 spa


基本用法: code

新建一个工程,而后在ViewController.m中添加以下代码 orm

- (void)viewDidLoad 对象

{ ip

    [superviewDidLoad]; 开发

   NSUserDefaults *myDefaults = [NSUserDefaultsstandardUserDefaults]; string

    [myDefaultssetObject:@"Hello"forKey:@"defaultKey"];

    

   NSLog(@"The value is %@",[myDefaultsobjectForKey:@"defaultKey"]);

}


编译运行结果以下:

NSUserDefaultsTest[3007:f803] The value is Hello


这样咱们实现了NSUserDefaults的基本使用,NSUserDefaults有一个基本特色就是,数据是保存在程序全局中的,因此当退出程序后下次再进来时,数据仍是存在的,这样就起到了保存用户操做数据的功能。


上面是实现了我的首选项的使用,下面咱们再来看看系统设置的使用。

首先来熟悉一下bundle

bundle的意思是应用程序束的意思,在IOS开发中,存在三种类型的bundle,分别是框架bundle、应用程序bundle和设置bundle。另外还有一种解释就是Xcode让您可以将多个文件组合成有机的总体,这就叫bundle。实际上,bundle就是一个目录,或者叫包。bundle的有点在于它能不露痕迹的存储文件的多个版本,并在特定的条件下使用正确的版本。咱们日常接触比较多的就是应用程序bundle,当编译运行程序在iphone或ipad上时,就建立了应用程序bundle。


首先新建一个文件,新建时选择Resources,而后选择settings.bundle,这样就创建了一个设置首选项的默认形式,运行后到模拟器的设置中能够看到以下界面:



打开Settings.bundle文件



能够看到有个Root.plist文件,里面存储的内容都是以键值对的形式存储的。这里的Item就对应了设置界面中显示的一些选项,Item0的类型是Group,对应的是一个分组表格类型,而后下面的Item都在这个分组表格中,直到遇到下一个Group。Text Field是输入文本框,下面的identifier是key,在代码中能够经过NSUserDefaults的objectForKey:来访问这个key对应的value。显示类型可供选择的还有开关、滑动条、子设置项等。使用中能够具体查看。


这是我作的另外一个Demo,里面包含了更多可显示的类型



而后回到ViewController.m文件中,在viewDidLoad中添加以下代码:

//程序设置首选项

    self.nameLabel.text = [[NSUserDefaultsstandardUserDefaults] stringForKey:@"name_preference"];

    

    BOOL isSwitch = [[NSUserDefaultsstandardUserDefaults] boolForKey:@"enabled_preference"];

   //输出BOOL值的方式

    self.switchLabel.text = [NSStringstringWithFormat:@"%@",isSwitch ?@"YES":@"NO"];

    

    float sliderValue = [[NSUserDefaultsstandardUserDefaults] floatForKey:@"slider_preference"];

    self.sliderLabel.text = [NSStringstringWithFormat:@"%f",sliderValue];


这样就把设置中的信息读出来显示到界面上了:



以上就是两种用户首选项的使用方法,一种是自定义首选项,一种是使用系统设置的方式。两种都很方便,在项目中用到的地方也比较多。


以上还有不足的地方,但愿你们补充,但愿和我交流的同窗能够关注个人新浪微博:唐韧_Ryan

相关文章
相关标签/搜索