iphone数据存储之--NSUserDefaults

用来存储用户偏好数据,生成 .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;

 

 

 

posted @ 2012-07-13 13:32  月光的尽头  阅读(1961)  评论(0编辑  收藏  举报