9. iOS 编程之 使用 NSUserDefaults 读取、保存应用程序参数

1、认识一下 NSUserDefaults

平时我们可能要不离开应用程序,直接在应用程序里边设置配置的参数等,这就需要用到 NSUserDefaults,而 NSUserDefaults 是一个单例类,每个应用程序只有一个 NSUserDefaults 对象。

1)获取 NSUserDefaults 实例的方法(Getting the Shared NSUserDefaults Instance)

+ (NSUserDefaults *)standardUserDefaults:返回默认对象。

+ (void)resetStandardUserDefaults:重置用户默认对象。

2)获取默认值(Getting Default Values)

- (NSArray
*)arrayForKey:(NSString
*)defaultName

- (BOOL)boolForKey:(NSString
*)defaultName

- (NSData
*)dataForKey:(NSString
*)defaultName

- (NSDictionary
*)dictionaryForKey:(NSString
*)defaultName

- (float)floatForKey:(NSString
*)defaultName

- (NSInteger)integerForKey:(NSString
*)defaultName

- (id)objectForKey:(NSString
*)defaultName

- (NSArray
*)stringArrayForKey:(NSString
*)defaultName

- (NSString
*)stringForKey:(NSString
*)defaultName

- (double)doubleForKey:(NSString
*)defaultName

- (NSURL
*)URLForKey:(NSString
*)defaultName

3)设置默认值(Setting Default Values)

- (void)setBool:(BOOL)value

         forKey:(NSString
*)defaultName

- (void)setFloat:(float)value

          forKey:(NSString
*)defaultName

- (void)setInteger:(NSInteger)value

            forKey:(NSString
*)defaultName

- (void)setObject:(id)value

           forKey:(NSString
*)defaultName

- (void)setDouble:(double)value

           forKey:(NSString
*)defaultName

- (void)setURL:(NSURL
*)url

        forKey:(NSString
*)defaultName

还有好多好多的方法,属性,请参考官方文档。

2、代码示例

@implementation ViewController

- (void)viewDidLoad {

[super
viewDidLoad];

}

- (void)didReceiveMemoryWarning {

[super
didReceiveMemoryWarning];

}

- (IBAction)save:(id)sender {

//获取默认配置文件

NSUserDefaults *userDefaults = [NSUserDefaults
standardUserDefaults];

[userDefaults setValue:self.userName.text
forKey:@"userName"];

[userDefaults setValue:self.userPassword.text
forKey:@"userPassword"];

[userDefaults setObject:self.phone.text
forKey:@"phone"];

[userDefaults setObject:self.address.text
forKey:@"address"];

NSArray *addList =
@[self.add1.text,self.add2.text,self.add3.text];

[userDefaults setValue:addList
forKey:@"addList"];

//马上提交保存

[userDefaults synchronize];

self.show.text =
@"set value success";

//打印沙盒位置,方便查看(可省略)

NSLog(@"[%@]",
NSHomeDirectory());

}

- (IBAction)get:(id)sender {

NSUserDefaults *userDefaults = [NSUserDefaults
standardUserDefaults];

NSString *username = [userDefaults
objectForKey:@"userName"];

NSString *userpassword = [userDefaults
objectForKey:@"userPassword"];

NSString *phone = [userDefaults
objectForKey:@"phone"];

NSString *address = [userDefaults
objectForKey:@"address"];

NSArray *addlist = [userDefaults
objectForKey:@"addList"];

[self.userName
setText:username];

[self.userPassword
setText:userpassword];

[self.phone
setText:phone];

[self.address
setText:address];

[self.add1
setText:addlist[0]];

[self.add2
setText:addlist[1]];

[self.add3
setText:addlist[2]];

self.show.text =
@"get value success";

}

- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

[self.userName
resignFirstResponder];

[self.userPassword
resignFirstResponder];

[self.phone
resignFirstResponder];

[self.address
resignFirstResponder];

[self.add1
resignFirstResponder];

[self.add2
resignFirstResponder];

[self.add3
resignFirstResponder];

}

@end

3、运行结果

时间: 2024-10-09 03:11:09

9. iOS 编程之 使用 NSUserDefaults 读取、保存应用程序参数的相关文章

ios数据存储之一 —— NSUserDefaults(偏好设置)

1 存储数据到NSUserDefaults(偏好设置)中 // 获取NSUserDefaults对象 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; // 保存数据(如果设置数据之后没有同步, 会在将来某一时间点自动将数据保存到Preferences文件夹下面) [defaults setObject:@"lnj" forKey:@"name"]; [defaults setObje

使用 NSUserDefaults 读取和写入自定义对象

众所周知,NSUserDefaults只能保存诸如NSArray.NSDictionary.NSData.NSNumber等基本数据类型,如果我们强制保存自定义的类,就会出现这个错误:Attempt to set a non-property-list object as an NSUserDefaults value for ,解释起来:[试图将一个非属性列表对象设置为 NSUserDefaults]接下来就说说如何吧自定义的对象保存到NSUserDefaults中去. 自定义的类实现<NSC

【Java编程】写入、读取、遍历Properties文件

在Java开发中通常我们会存储配置参数信息到属性文件,这样的属性文件可以是拥有键值对的属性文件,也可以是XML文件,关于XML文件的操作,请参考博文[Java编程]DOM XML Parser 解析.遍历.创建XML.在该篇博文中,我将展示如何向属性文件写入键值对,如何读取属性文件中的键值对,如何遍历属性文件. 1.向属性文件中写入键值对 特别注意: Properties类调用setProperty方法将键值对保存到内存中,此时可以通过getProperty方法读取,propertyNames(

iOS编程——经过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版)

iOS编程——通过UUID和KeyChain来代替Mac地址实现iOS设备的唯一标示(OC版) 很多的应用都需要用到手机的唯一标示,而且要求这个唯一标示不能因为应用app的卸载或者改变而变化. 在iOS7以前是可以通过Mac地址来实现这个功能的,但是iOS7(包含)以后是无法获得Mac地址的:苹果官方推荐使用UUID,但是每次随着APP的卸载重装,UUID会随之发生变化,那该如何处理呢? 我们需要一个能在app卸载重装后不会改变的值,而keyChain恰巧就可以做到.配合UUID就可以实现了!让

iOS编程基础: Hello World App是如何运作的?

参照里Linux目录建立文件系统目录. 解压源码进入目录配置编译器和编译架构: CROSS_COMPILE ?= arm-linux- ARCH = arm. 执行make menuconfig 进行配置 选择静态编译, 在Installation Options中选择安装路径(可以直接选择刚才建立到目录).保存退出. make make install 生成文件. 进入建立好目录到etc目录执行:cp -rf ../../busybox-1.13.0/examples/bootfloppy/e

NSuserdefaults 数据保存安全性[黑科技分析]

NSuserdefaults 是一种IOS常用的数据持久化的方式,操作简便,配合NSCoding 和NSKeyedArchiver,很容易将数据model转化成NSData直接存储在NSuserdefaults.那使用NSuserdefaults保存数据,数据的安全性如何呢? NSuserdefaults 的本质是使用了plist存储数据,将存储在NSuserdefaults中的数据写入了一个以Bundle Identifier的plist中. 下面是一个简单的例子. @interface Te

IOS-本地存储-NSUserDefaults

We consider permutations of the numbers 1,..., N for some N. By permutation we mean a rearrangment of the number 1,...,N. For example 2  4  5  1  7  6  3  8 is a permutation of 1,2,...,8. Of course, 1  2  3  4  5  6  7  8 is also a permutation of 1,2

ios编程之回调机制

ios编程之回调机制详解:   ———————————————— 函数/方法/block块一系列概念: 函数在大部分高级语言中都是个重要的概念,函数实现就是对一段代码的封装,我们一般会为了完成某一个业务功能或编程逻辑而需要组织数行代码,而这数行代码还有可能被使用多次,所以将它们封装成一个函数,每一次的执行我们称之为调函数或函数调用. 在C程序中,我们知道程序是从main函数开始执行,执行完main函数就退出程序,其实我们程序员很少去跟踪整个程序的执行流,一个程序(一段二进制代码)如何从加载到运行

Java编程:使用Java读取Excel文件内容

微软的ODBC驱动程序把工作表中的第一行作为列名(译者注:即字段名),工作表名作为数据库表名. 要通过JDBC访问工作表,我们还必须创建一个新的ODBC数据源,在Windows 2000系统上创建数据源的过程如下: 进入“控制面板” --> “管理工具” --> “数据源(ODBC)”,(译者注:打开后选择系统DSN),点击添加,在弹出窗口中选择“Driver do Microsoft Excel(*.xls)” 然后在数据源名处输入一个名字myexcel(译者注:相当于数据库名),然后点击“