让NSUserDefaults使用起来像对象一样容易
2024-08-30 20:05:19
让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
核心源码:
最新文章
- 重装windows7企业版时提示“安装程序无法创建新的系统分区,也无法定位现有系统
- 怪物彈珠Monster Strike 攻略
- javasE学习笔记:关键字super的使用
- 图像处理之face morphing
- sc7731 Android 5.1 LCD驱动简明笔记之一
- Ajax and JSON
- 办理滑铁卢大学(本科)学历认证『微信171922772』UW学位证成绩单使馆认证University of Waterloo
- 一次__libc_message的排查
- Java基础 -- 深入理解泛型
- oldboy s21day15模块装饰器及其他应用
- day21(1)---python的内存管理
- dl,dt,dd标签的使用
- jQuery使用(十三):工具方法
- spark大批量读取Hbase时出现java.lang.OutOfMemoryError: unable to create new native thread
- 置顶博客一览表($My~Top~List$)
- JMeter一次简单的接口测试(转载)
- httpclient的简单使用
- git小乌龟工具TortoiseGit记住你的账号密码
- Laravel 事件系统用法总结(监听事件,观察者模式)
- Linux查看网卡UUID另一方法