iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
来源:互联网 发布:tp3.2数据库配置 编辑:程序博客网 时间:2024/05/16 00:29
基本使用:
创建一个user defaults方法有多个,最简单得快速创建方法:
NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];
添加数据到 user defaults:
[accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];
也可以添加基本数据类型int, float, bool等,有相应得方法
[accountDefaults setBool:YES forKey:UserDefaultBoolKey];
从user defaults中获取数据:
[accountDefaults objectForKey:NCUserDefaultNameKey]
[accountDefaults boolForKey: UserDefaultBoolKey];
要点:
NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使NSUserDefaults的数据,那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作。
针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。
例子代码2:
代码基本如下:
NSArray* arr = [[NSArray alloc] initWithObjects:@"111", @"222",@"22223333",nil]; NSMutableArray* marr = [[NSMutableArray alloc] initWithArray:arr]; NSLog(@"%i",[arr count]); NSLog(@"%i",[marr count]); NSUserDefaults *mydefault = [NSUserDefaults standardUserDefaults]; [mydefault setObject:arr forKey:@"test1"]; [mydefault setObject:marr forKey:@"test2"]; [mydefault synchronize]; //保存到disk NSArray* getarr=[mydefault objectForKey:@"test1"]; NSLog(@"test1=%i",[getarr count]); NSArray* getmarr=[mydefault objectForKey:@"test2"]; NSLog(@"test2=%i",[getmarr count]);
注意一点:只能存储基本对象,如果是自定义的对象,需要转换成nsdata存储进去才可以
iPhone中在本地存储数据简单的说有三种方式:数据库、NSUserDefaults和文件。
NSUserDefaults用于存储数据量小的数据,例如用户配置。并不是所有的东西都能往里放的,只支持:NSString, NSNumber, NSDate, NSArray, NSDictionary,详细方法可以## 标题 ##查看类文件。
NSUserDefaults读取和写入自定义对象
NSUserDefaults可以存取一些短小的信息。
比如存入再读出一个字符串到NSUserDefaults:
但是并不是所有的东西都能往里放的。NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.
如果把一个自定义的类存到一个NSArray里,然后再存到NSUserDefaults里也是不能成功的。
采用全局变量NSUserDefault
可以采用全局变量NSUserDefault来在整个项目传递变量。
使用实例:
在A类中:
NSUserDefaults * userDefault = [NSUserDefaultsstandardUserDefaults]; [userDefault setBool:YES forKey:@"isonline"]; [userDefault setInteger:111 forKey:@"online_user_number"]; ...等等。参见NSUserDefault用法。
在B中:获取A传递过来的参数
NSUserDefault * userDefault = [NSUserDefault standardUserDefault]; BOOL isonline = [userDefault boolForKey:@"isonline"]; NSInteger onlineUserNumber = [userDefault integerForKey:@"online_user_number"];
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- ios NSUserDefaults读取和写入自定义对象
- NSUserDefaults写入和读取自定义的对象
- iOS数据持久化 NSUserDefaults的使用
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- NSUserDefaults读取和写入自定义对象
- Redis教程(九):主从复制配置实例
- 【002】Mac使用命令行启动app
- svn错误问题处理could not connect to server
- Kafka Producer 工作流程
- ContentProvider的用法与理解
- iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象
- 数据表写操作卡住,导致所有的注册失败
- kvm虚拟化学习(更新中...)
- unable to load native-hadoop library for your platform using builtin-java classes
- 安卓解决adb被占用的问题
- 二叉树的深度&判断一棵二叉树是否是平衡二叉树&110. Balanced Binary Tree
- LeetCode_1_TwoSum(Java Code)
- 用EL表达式取List<Map<String, Object>>map的值(查阅了很久,总结一下)
- 基于zepto或jquery的手机端弹出框成功,失败,加载特效