iOS 数据存储--NSUserDefault
来源:互联网 发布:少年三国志五星刀数据 编辑:程序博客网 时间:2024/06/03 03:20
iPhone存储数据一般有三种方式:数据库,NSUserDefaults和文件。
其中NSUserDefaults适合存储数据量小的数据,例如用户配置。并不是所有的东西都能往里面放,只支持:NSString, NSNumber, NSData, NSArray, NSDictionary。
//creat NSUserDefaults
NSUserDefaults *userdefaults = [NSUserDefaultsstandardUserDefaults];
//add objects
[userdefaultssetBool:NO forKey:@"boolKey"];
[userdefaultssetValue:@"hello"forKey:@"stringKey"];
NSArray *arr = [NSArrayarrayWithObjects:@"one",@"three",@"two",nil];
[userdefaultssetValue:arr forKey:@"arrayKey"];
//remove objects
[userdefaultsremoveObjectForKey:@"stringKey"];
//为了确保数据被保存到disk(不写的话也会保存)
[userdefaultssynchronize];
//get objects
BOOL ok = [userdefaults boolForKey:@"boolKey"];
NSArray *array = [userdefaults objectForKey:@"arrayKey"];
如果存储自定义对象,需要将对象转换成NSData,然后存入userdefaults。
@interface People :NSObject <NSCoding>
{
NSString *_name;
NSString *_age;
}
@property (nonatomic,retain) NSString *name;
@property (nonatomic,retain) NSString *age;
@end;
@implementation People
@synthesize name =_name, age = _age;
- (id) initWithCoder: (NSCoder *)coder
{
if (self = [superinit])
{
self.name = [coderdecodeObjectForKey:@"name"];
self.age = [coderdecodeObjectForKey:@"age"];
}
return self;
}
- (void) encodeWithCoder: (NSCoder *)coder
{
[coder encodeObject:self.nameforKey:@"name"];
[coder encodeObject:self.ageforKey:@"age"];
}
@end
//将对象转换成NSData,然后存入NSUserDefaults
People *people = [[Peoplealloc] init];
people.name =@"lilei";
people.age =@"18";
NSUserDefaults *userDefault = [NSUserDefaultsstandardUserDefaults];
NSData *peopleData = [NSKeyedArchiverarchivedDataWithRootObject:people];
//save peopleData
[userDefaultsetObject:peopleData forKey:@"peopleKey"];
//get Data
peopleData = [userDefaultobjectForKey:@"peopleKey"];
people = [NSKeyedUnarchiverunarchiveObjectWithData:peopleData];
在模拟器下你可以在下面地址看到你所存储的内容:
Library/Application Support/iPhone Simulator/6.1/Application/[your project]/Library/Preferences/[XXXX.plist]
- iOS 数据存储--NSUserDefault
- iOS 数据存储--NSUserDefault
- iOS数据存储之NSUserDefault
- 使用NSUserDefault存储数据
- iOS NSUserDefault存储自定义对象
- iOS开发保持用户登录状态-NSUserDefault实现数据持久化
- iOS —— NSUserDefault存储自定义数据类型
- iOS项目本地存储NSUserDefault的改进
- ios开发之数据的持久化存储机制NSuserDefault、Plist、archiver、Sqlite、coreData
- 数据存储之偏向设置NSUserDefault
- swift中使用NSUserDefault存储读取数据
- ios之NSUserDefault存储自定义类型的对象
- iOS数据懒加载和NSUserdefault基本使用
- NSUserdefault 存储自定义对象
- 本地存储之 NSUserDefault
- NSUserdefault 存储自定义对象
- NSUserDefault 存储自定义对象
- NSUserDefault存储对象模型
- 多边形区域填充算法--扫描线填充算法(有序边表法)
- 反编译教程-03(jad 常见问题)解决error
- 多边形区域填充算法--改进的扫描线填充算法
- AFNetworking 学习笔记
- 字符串中substring(),substr(),slice()方法用法
- iOS 数据存储--NSUserDefault
- 对单个文件ARC模式的 设置(添加或取消)
- AS3 显示对象容器
- HDU1308(平润年)
- 多边形区域填充算法--几种边标志填充算法
- Java 处理不可中断的阻塞
- Sqlite数据库sqlite3命令
- 将apk文件装到模拟器上
- Asp.net中获取前一页的url