iOS 偏好设置

一、NSUserDefaults 的用法,主要是保存和读取数据

用途:

主要用来存储用户系统的设备信息,但有的时候也可以在程序的任何地方用来存储数据,作为全局数据来访问,例如视图切换需要进行登录时。

当视图切换需要登录时可以对NSUserDefault文件进行判断决定跳转页面。

偏好设置的写入:

很多iOS应用都支持偏好设置,比如保存用户名、密码、字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能

每个应用都有个NSUserDefaults实例,它是一个单例对象,通过它来存取偏好设置,设置信息都是键值对的形式。

例如:保存用户名、字体大小、是否自动登录

1、初始化一个 NSUserDefault

+ (NSUserDefaults *)standardUserDefaults;

2、设置数据的方法

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

- (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;

3、读取数据的方法

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

- (nullable NSString *)stringForKey:(NSString *)defaultName;

- (nullable NSArray *)arrayForKey:(NSString *)defaultName;

- (nullable NSDictionary *)dictionaryForKey:(NSString *)defaultName;

- (nullable NSData *)dataForKey:(NSString *)defaultName;

- (nullable NSArray *)stringArrayForKey:(NSString *)defaultName;

- (NSInteger)integerForKey:(NSString *)defaultName;

- (float)floatForKey:(NSString *)defaultName;

- (double)doubleForKey:(NSString *)defaultName;

- (BOOL)boolForKey:(NSString *)defaultName;

4、删除数据的方法

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

5、保存数据

如果不手动调用,系统会自动保存,但时间不定

- (BOOL)synchronize;

二、使用方法

1、获得NSUserDefaults文件

NSUserDefaults*userDefaults = [NSUserDefaults standardUserDefaults];

2、向文件中写入内容

[userDefaults setObject:@"AAA"forKey:@"a"]; 

 [userDefaults setBool:YESforKey:@"sex"]; 

 [userDefaults setInteger:21forKey:@"age"];

3、立即同步

[userDefaults synchronize];

4、读取文件

NSString*name = [userDefaults objectForKey:@"a"];

BOOL sex = [userDefaults boolForKey:@"sex"];

NSInteger age = [userDefaults integerForKey:@"age"];

5、删除文件

 [userDefaults removeObjectForKey:@"sex"];

三、存储id类型数据

+ (void)setValue:(id)value andKey:(NSString*)key {

          NSUserDefaults*userDefaults = [NSUserDefaults standardUserDefaults];

         [userDefaults setObject:value forKey:key];     

         [userDefaults synchronize]; 

}

四、获取数据

+ (NSString*)getValueByKey:(NSString*)key  {

         NSUserDefaults* settings = [NSUserDefaults standardUserDefaults];

        NSString*value = [settings objectForKey:key];

        return value;  

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容