IOS NSUserDefaults-轻量级本地数据存储
IOS 针对用户数据持久化处理提供了多种处理方式:NSUserDefaults、plist 以及 sqlite3 数据库 都是很不错的选择!
NSUserDefaults 是一种轻量级本地数据存储,操作方便,但仅支持Bool、Float、NSInteger、Object、Double、Url 这六种数据类型的存储
NSUserDefaults 提供了添加、读取以及移除等方法,供开发者调用,具体示例如下:
GNSUserDefaults.h
#import <Foundation/Foundation.h> /** * GNSUserDefaults * 轻量级本地数据存储(NSUserDefaults) */ @interface GNSUserDefaults : NSObject /** * get_userDefaults * 获取并初始化 NSUserDefaults 对象 * * @return NSUserDefaults */ +(NSUserDefaults *) get_userDefaults; #pragma mark-Class UserDefaults 保存数据(仅支持六种类型:Bool、Float、NSInteger、Object、Double、Url) /** * saveUserDefaults_Bool * 保存数据 * * @param objValue BOOL 保存的数据值 * @param objKey NSString 保存的数据键 */ +(void) saveUserDefaults_Bool:(BOOL) objValue objKey:(NSString *)objKey; /** * saveUserDefaults_Float * 保存数据 * * @param objValue float 保存的数据值 * @param objKey NSString 保存的数据键 */ +(void) saveUserDefaults_Float:(float) objValue objKey:(NSString *)objKey; /** * saveUserDefaults_Integer * 保存数据 * * @param objValue float 保存的数据值 * @param objKey NSString 保存的数据键 */ +(void) saveUserDefaults_Integer:(NSInteger) objValue objKey:(NSString *)objKey; /** * saveUserDefaults_NSObject * 保存数据 * * @param objValue NSObject 保存的数据值 * @param objKey NSString 保存的数据键 */ +(void) saveUserDefaults_NSObject:(NSObject *) objValue objKey:(NSString *)objKey; /** * saveUserDefaults_Double * 保存数据 * * @param objValue double 保存的数据值 * @param objKey NSString 保存的数据键 */ +(void) saveUserDefaults_Double:(double) objValue objKey:(NSString *)objKey; /** * saveUserDefaults_NSURL * 保存数据 * * @param objValue NSURL 保存的数据值 * @param objKey NSString 保存的数据键 */ +(void) saveUserDefaults_NSURL:(NSURL *) objValue objKey:(NSString *)objKey; #pragma mark-Class 读取 UserDefaults 数据(仅支持六中类型:Bool、Float、NSInteger、Object(id)、Double、Url) /** * readUserDefaults_Bool * 读取数据 * * @param objKey NSString 读取的键名 * * @return NSObject 键对应值 */ +(BOOL) readUserDefaults_Bool:(NSString *) objKey; /** * readUserDefaults_Float * 读取数据 * * @param objKey NSString 读取的键名 * * @return NSObject 键对应值 */ +(float) readUserDefaults_Float:(NSString *) objKey; /** * readUserDefaults_Integer * 读取数据 * * @param objKey NSString 读取的键名 * * @return NSObject 键对应值 */ +(NSInteger) readUserDefaults_Integer:(NSString *) objKey; /** * readUserDefaults_Object * 读取数据 * * @param objKey NSString 读取的键名 * * @return NSObject 键对应值 */ +(id) readUserDefaults_Object:(NSString *) objKey; /** * readUserDefaults_Double * 读取数据 * * @param objKey NSString 读取的键名 * * @return NSObject 键对应值 */ +(double) readUserDefaults_Double:(NSString *) objKey; /** * readUserDefaults_URl * 读取数据 * * @param objKey NSString 读取的键名 * * @return NSObject 键对应值 */ +(NSURL *) readUserDefaults_URl:(NSString *) objKey; @end
GNSUserDefaults.m
#import "GNSUserDefaults.h" /** * GNSUserDefaults * 轻量级本地数据存储(NSUserDefaults) */ @implementation GNSUserDefaults #pragma mark-Class static variable static NSUserDefaults* userDefaults; #pragma mark-Class method +(NSUserDefaults *) get_userDefaults{ if (!userDefaults) userDefaults = [NSUserDefaults standardUserDefaults]; return userDefaults; } #pragma mark-Class UserDefaults 保存数据(仅支持六种类型:Bool、Float、NSInteger、Object、Double、Url) +(void) saveUserDefaults_Bool:(BOOL) objValue objKey:(NSString *)objKey{ [[GNSUserDefaults get_userDefaults] setBool:objValue forKey:objKey]; //这里建议同步存储到磁盘中,但是不是必须的 [[GNSUserDefaults get_userDefaults] synchronize]; } +(void) saveUserDefaults_Float:(float) objValue objKey:(NSString *)objKey{ [[GNSUserDefaults get_userDefaults] setFloat:objValue forKey:objKey]; //这里建议同步存储到磁盘中,但是不是必须的 [[GNSUserDefaults get_userDefaults] synchronize]; } +(void) saveUserDefaults_Integer:(NSInteger) objValue objKey:(NSString *)objKey{ [[GNSUserDefaults get_userDefaults] setInteger:objValue forKey:objKey]; //这里建议同步存储到磁盘中,但是不是必须的 [[GNSUserDefaults get_userDefaults] synchronize]; } +(void) saveUserDefaults_NSObject:(NSObject*) objValue objKey:(NSString *)objKey{ [[GNSUserDefaults get_userDefaults] setObject:objValue forKey:objKey]; //这里建议同步存储到磁盘中,但是不是必须的 [[GNSUserDefaults get_userDefaults] synchronize]; } +(void) saveUserDefaults_Double:(double) objValue objKey:(NSString *)objKey{ [[GNSUserDefaults get_userDefaults] setDouble:objValue forKey:objKey]; //这里建议同步存储到磁盘中,但是不是必须的 [[GNSUserDefaults get_userDefaults] synchronize]; } +(void) saveUserDefaults_NSURL:(NSURL *) objValue objKey:(NSString *)objKey{ [[GNSUserDefaults get_userDefaults] setURL:objValue forKey:objKey]; //这里建议同步存储到磁盘中,但是不是必须的 [[GNSUserDefaults get_userDefaults] synchronize]; } #pragma mark-Class 读取 UserDefaults 数据(仅支持六中类型:Bool、Float、NSInteger、Object(id)、Double、Url) +(BOOL) readUserDefaults_Bool:(NSString *) objKey{ return [[GNSUserDefaults get_userDefaults] boolForKey:objKey]; } +(float) readUserDefaults_Float:(NSString *) objKey{ return [[GNSUserDefaults get_userDefaults] floatForKey:objKey]; } +(NSInteger) readUserDefaults_Integer:(NSString *) objKey{ return [[GNSUserDefaults get_userDefaults] integerForKey:objKey]; } +(id) readUserDefaults_Object:(NSString *) objKey{ return [[GNSUserDefaults get_userDefaults] objectForKey:objKey]; } +(double) readUserDefaults_Double:(NSString *) objKey{ return [[GNSUserDefaults get_userDefaults] doubleForKey:objKey]; } +(NSURL *) readUserDefaults_URl:(NSString *) objKey{ return [[GNSUserDefaults get_userDefaults] URLForKey:objKey]; } @end
移除对象:removeObjectForKey
更多信息参考:http://blog.csdn.net/enuola/article/details/7959767
时间: 2024-10-29 19:13:37