NSUserDefaults的最佳使用方法
来源:互联网 发布:文艺气息的网名知乎 编辑:程序博客网 时间:2024/05/22 13:07
Date: 2015-12-01
Title: NSUserDefaults的最佳使用方法
Tags: iOS-Dev-skills
Status: public
使用NSUserDefaults保存数据
使用NSUserDefaults来保存数据在iOS开发过程中非常便捷,因为可以在APP的不同地方来修改或者保存一些设置。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults synchronize];//同步[defaults setBool:NO forKey:@"key"];//保存bool值[defaults setValue:_value forKey:@"key"];//保存对象[defaults synchronize];//同步
使用起来通常以上代码基本解决问题。
但是,优先同步改变的这个对象以保证修改总是展示出正确的值,这 一点就变得很重要。
因此,我们可以创建一个辅助类,用它使用NSUserDefaults来对本地存储的设置项进行读取,以保证每次拿到最新的值。
1、创建objective class,集成NSObject类,命名为ConfigurationHelper,我们可以得到对应的.h和.m两个文件。
2、在ConfigurationHelper.h中声明类方法
//设置APP启动时的defaults+(void)setApplicationStartupDefaults; //根据_objectkey获取对应的bool值+(BOOL)getBoolValueForConfigurationKey:(NSString *)_objectkey; //根据_objectkey获取对应的string值+(NSString *)getStringValueForConfigurationKey:(NSString *)_objectkey;//根据_objectkey设置对应的布尔值_boolvalue+(void)setBoolValueForConfigurationKey:(NSString *) _objectkey withValue:(BOOL)_boolvalue;//根据_objectkey设置对应的字符串值_value+(void)setStringValueForConfigurationKey:(NSString *) _objectkey withValue:(NSString *)_value;
3、在ConfigurationHelper.m中实现.h中声明的方法
//设置APP启动时的defaults+(void)setApplicationStartupDefaults { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults synchronize]; [defaults setBool:NO forKey:bYDFirstLaunch]; [defaults setBool:NO forKey:bYDAuthenticated]; [defaults synchronize];}//根据_objectkey获取对应的bool值+(BOOL)getBoolValueForConfigurationKey:(NSString *)_objectkey { //create an instance of NSUserDefaults NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults synchronize]; //let's make sure the object is synchronized return [defaults boolForKey:_objectkey];}//根据_objectkey获取对应的string值+(NSString *)getStringValueForConfigurationKey:(NSString *)_objectkey { //create an instance of NSUserDefaults NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults synchronize]; //let's make sure the object is synchronized //当 getStringValueForConfigurationKey:方法尝试传入一个空指针时,它会返回一个空的 NSString 而不是这个空指针。 if ([defaults stringForKey:_objectkey] == nil ) { //I don't want a (null) returned return @""; }else { return [defaults stringForKey:_objectkey]; }}//根据_objectkey设置对应的布尔值_boolvalue+(void)setBoolValueForConfigurationKey:(NSString *) _objectkey withValue:(BOOL)_boolvalue{ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults synchronize]; //let's make sure the object is synchronized [defaults setBool:_boolvalue forKey:_objectkey]; [defaults synchronize];//make sure you're synchronized again}//根据_objectkey设置对应的字符串值_value+(void)setStringValueForConfigurationKey:(NSString *) _objectkey withValue:(NSString *)_value{ NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults synchronize]; //let's make sure the object is synchronized [defaults setValue:_value forKey:_objectkey]; [defaults synchronize];//make sure you're synchronized again}
4、辅助类的使用
在项目的Supporting Files文件夹下的.pch中导入该类
#import "ConfigurationHelper.h"
这样就可以保证该类在APP其他类中可以全局访问
取值:
//取字符串[ConfigurationHelper getStringValueForConfigurationKey:@"key"];//取bool值[ConfigurationHelper getStringValueForConfigurationKey:@"key"];
存值:
//存字符串[ConfigurationHelper setStringValueForConfigurationKey:@"key" withValue:@"objcet"];//存bool值[ConfigurationHelper setBoolValueForConfigurationKey:@"key" withValue:@"objcet"];
如果有更好的方法,请告诉我,谢谢
注:该文总结于《iOS高级编程》
0 0
- NSUserDefaults的最佳使用方法
- NSUserDefaults的使用方法
- NSUserDefaults的使用方法
- NSUserDefaults使用方法
- iOS NSUserDefaults使用方法
- iOS 常量的最佳使用方法
- iOS 常量的最佳使用方法
- NSUserDefaults 简介,以及使用方法使用
- NSUserDefaults的使用 (收集)
- NSUserDefaults standardUserDefaults的使用
- NSUserDefaults 的用法
- NSUserDefaults standardUserDefaults的使用
- NSUserDefaults standardUserDefaults的使用
- NSUserDefaults standardUserDefaults的使用
- NSUserDefaults standardUserDefaults的使用
- NSUserDefaults的使用
- IOS-NSUserDefaults的翻译
- NSUserDefaults的使用
- 410c与MS10物联网系统的点灯代码分析
- android---Scroll实现滑动效果
- C语言 数组与字符串
- 抽象类第一课(的注释)
- 单例模式,你知道的和你所不一定知道的一切
- NSUserDefaults的最佳使用方法
- html测试
- 输入子系统总结
- 线程中的同步和异步
- 澄清P问题、NP问题、NPC问题的概念
- ios网络编程(http、socket)
- Gradle 第四讲 之 ant使用 与 methods使用
- swift delegate
- 悦动圈跑步 提交步数协议分析