关于iOS中的NSUserDefaults系统隐藏目录
来源:互联网 发布:数据分析师培训机构 编辑:程序博客网 时间:2024/05/09 10:36
1.NSUserDefaults 含义:
NSUserDefaults(系统隐藏目录)用于永久保存数据,是一个单例,在程序项目中只有一个实例对象,适合存储轻量级的本地数据(如:用户名、密码等)。
2.NSUserDefaults 支持的数据类型:
NSNumber、NSString、NSDate、NSArray、NSDictionary、BOOL
3.NSUserDefaults 使用:
NSLog(@"写入账号和密码");
[[NSUserDefaults standardUserDefaults] setObject:account forKey:@"account"];
}
if(index >0){
NSDictionary *account1 = [[NSUserDefaults standardUserDefaults] objectForKey:@"account"];
NSLog(@"账号和密码为%@",account1);
}
代码中首先判断是否第一个登录,若第一次就写入userName(用户名)和password(密码),存储用户名密码;第二次登录时,本地已经存储用户名和密码,就可打印出用户名和密码。
[[NSUserDefaults standardUserDefaults] setObject:account forKey:@"account"]; //存储为本地数据
NSDictionary *account1 = [[NSUserDefaults standardUserDefaults] objectForKey:@"account"]; //取出存储的数据
注意:
Key相同会覆盖已有原有Key,必须保证Key的唯一。
NSUserDefaults存储的对象是不可变的。
自定义对象,不能直接归档。
4.NSUserDefaults 存储自定义对象:
自定义的对象可选择归档,把对象放进字典,压缩解码。
自定义对象归档方法:支持NSCoding协议,用协议的两个方法进行编码解码,然后用NSKeyedArchiver写入沙盒文件,用NSKeyedUnarchiver读取文件。
例:
将自定义的对象归档存入:
@interfaceUser : NSObject<NSCoding>//加入协议,实现对象归档
@property (nonatomic,strong) NSString *userName;
@property (nonatomic,strong) NSString *password;
@end
- (void)encodeWithCoder:(NSCoder*)aCoder{ //编码
[aCoder encodeObject:self.userNameforKey:@"userName"];
[aCoder encodeObject:self.passwordforKey:@"password"];
}
- (nullable instancetype)initWithCoder:(NSCoder*)aDecoder{ //解码
self = [superinit];
self.userName= [aDecoder decodeObjectForKey:@"userName"];
self.password= [aDecoder decodeObjectForKey:@"password"];//写在协议中,做了简单的封装
return self;
}
将自定义的对象取出:
- 关于iOS中的NSUserDefaults系统隐藏目录
- iOS 文件目录及NSUserDefaults
- IOS 文件目录及NSUserDefaults浅谈
- IOS 文件目录及NSUserDefaults浅谈
- IOS 文件目录及NSUserDefaults浅谈
- iOS 文件目录及NSUserDefaults浅谈
- ios文件目录路径及NSUserDefaults
- IOS 文件目录及NSUserDefaults浅谈
- iOS:NSUserDefaults
- iOS:NSUserDefaults
- iOS NSUserDefaults
- ios-NSUserDefaults
- iOS-NSUserDefaults
- iOS NSUserDefaults
- iOS NSUserDefaults
- iOS NSUserdefaults
- 关于NSUserDefaults
- 关于NSUserDefaults
- spring data mongo API learn
- position笔记
- AndroidStudio多渠道打包
- RTl8188EUS无线网卡驱动编译,支持master模式
- C# $字符串
- 关于iOS中的NSUserDefaults系统隐藏目录
- [缩树 主席树] BZOJ 4539 [Hnoi2016]树
- android studio 的工具device monitor显示出错(界面变灰)
- JFinal使用FreeMarker静态文件路径
- c++(16)编写自己的头文件
- HDU 2089 不要62 (经典的数位dp)
- C++ bitset类的使用与简介
- 02-线性结构2 一元多项式的乘法与加法运算 (20分)
- 用UglifyJS2合并压缩混淆JS代码