让NSUserDefaults使用起来像对象一样容易
巧妙的设计,是为了简化开发提升效率而存在。
设计要点:
1. 单例模式
2. 重写setter,getter方法
3. 专门的类来管理单例
使用时候的详情:
源码:
SharedInstance.h 与 SharedInstance.m
//
// SharedInstance.h
// NSUserDefault
//
// Created by YouXianMing on 14/12/5.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "NSUserDefaultsObject.h"
/**
* 单例管理器
*/
@interface SharedInstance : NSObject
+ (NSUserDefaultsObject *)defaultsObject;
@end
//
// SharedInstance.m
// NSUserDefault
//
// Created by YouXianMing on 14/12/5.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
//
#import "SharedInstance.h"
static NSUserDefaultsObject *_defaultObject = nil;
@implementation SharedInstance
/**
* 构造单例的类方法
*/
+ (void)initialize {
if (self == [SharedInstance class]) {
_defaultObject = [NSUserDefaultsObject new];
}
}
+ (NSUserDefaultsObject *)defaultsObject {
return _defaultObject;
}
@end
NSUserDefaultsObject.h 与 NSUserDefaultsObject.m
//
// NSUserDefaultsObject.h
// NSUserDefault
//
// Created by YouXianMing on 14/12/5.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface NSUserDefaultsObject : NSObject
@property (nonatomic, strong) NSString *name;
@end
//
// NSUserDefaultsObject.m
// NSUserDefault
//
// Created by YouXianMing on 14/12/5.
// Copyright (c) 2014年 YouXianMing. All rights reserved.
//
#import "NSUserDefaultsObject.h"
@implementation NSUserDefaultsObject
#pragma mark - 重写setter,getter方法
@synthesize name = _name;
- (void)setName:(NSString *)name {
[[NSUserDefaults standardUserDefaults] setValue:name forKey:@"name"];
}
- (NSString *)name {
return [[NSUserDefaults standardUserDefaults] valueForKey:@"name"];
}
@end
核心源码:
时间: 2024-12-21 17:44:40