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