iphone数据存储之--NSUserDefaults

来源:互联网 发布:穆勒plc手动编程方法 编辑:程序博客网 时间:2024/06/06 19:18

用来存储用户偏好数据,生成 .plist文件保存到iphone,在 app同级目录的/Library/Preferences目录下

数据采用键值对的方式访问和设置

使用时候可以自定义一个单列模式的类,比如UserPreference,封装调用

1.先定义一些键,可以随便定义,比如

static NSString *kUserNameKey = @"test-key1";

2.取数据的方法,比如取字符串

NSString *userName = [[[NSUserDefaults standardUserDefaults] stringForKey:kUserNameKey] retain];

如果未定义,则为nil

获取的方法有以下一些

复制代码
- (NSString *)stringForKey:(NSString *)defaultName;- (NSArray *)arrayForKey:(NSString *)defaultName;- (NSDictionary *)dictionaryForKey:(NSString *)defaultName;- (NSData *)dataForKey:(NSString *)defaultName;- (NSArray *)stringArrayForKey:(NSString *)defaultName;- (NSInteger)integerForKey:(NSString *)defaultName;- (float)floatForKey:(NSString *)defaultName;- (double)doubleForKey:(NSString *)defaultName;- (BOOL)boolForKey:(NSString *)defaultName;- (NSURL *)URLForKey:(NSString *)defaultName;
复制代码

还提供了一个取任意对象的方法

- (id)objectForKey:(NSString *)defaultName;


3.保存数据的方法,比如保存int类型的数

[[NSUserDefaults standardUserDefaults] setInteger:10 forKey:kMaxCountKey];[[NSUserDefaults standardUserDefaults] synchronize];  //表示同步保存

其中键kMaxCountKey,可以随便定义

保存的其他方法如下:

- (void)setInteger:(NSInteger)value forKey:(NSString *)defaultName;- (void)setFloat:(float)value forKey:(NSString *)defaultName;- (void)setDouble:(double)value forKey:(NSString *)defaultName;- (void)setBool:(BOOL)value forKey:(NSString *)defaultName;- (void)setURL:(NSURL *)url forKey:(NSString *)defaultName NS_AVAILABLE(10_6, 4_0);

还提供了保存设置任意对象的方法

- (void)setObject:(id)value forKey:(NSString *)defaultName;

或者批量设置键值对数据

- (void)registerDefaults:(NSDictionary *)registrationDictionary;

 

4.删除某个数据的方法

- (void)removeObjectForKey:(NSString *)defaultName;

 

5.默认用户

[NSUserDefaults standardUserDefaults]

standardUserDefaults类方法用来访问默认用户

也可以用下面的方法来初始化一个指定用户名称的偏好,比如

- (id)initWithUser:(NSString *)username;

重置默认用户的方法

+ (void)resetStandardUserDefaults;

0 0
原创粉丝点击