登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

NSUserDefaults保存数据不好管理,想统一管理看这里!

[复制链接]
来自: 狼居胥侯 分类: iOS精品源码 上传时间: 2018-8-14 10:57:20
Tag:

项目介绍:

简介

是个iOS程序猿都使用过NSUserDefaults来进行数据保存,但是如果使用不好的话很难对其保存的数据进行统一管理,为此今天就来介绍一个很好用的组件:
NSUserDefaultsModel.

博客与Github

Github:https://github.com/liuchongfaye/NSUserDefaultsModel
简书:https://www.jianshu.com/p/681ef055f716
CSDN:https://blog.csdn.net/LiuChongFaye/article/details/81284709

用法

NSUserDefaultsModel是一个很简单的组件,或者说是一个小型库,使用和很简单:

  • 创建一个NSUserDefaultsModel的子类,姑且叫他LCUserDefaultsModel。

  • 对于想要保存的数据,只需要LCUserDefaultsModel.h里定义好就行,比如下面代码

@interface LCUserDefaultsModel : NSUserDefaultsModel

@property (nonatomic, copy)    NSString *name;
@property (nonatomic, assign)  NSInteger gender;
@property (nonatomic, assign)  long age;
@property (nonatomic, assign)  float floatNumber;
@property (nonatomic, assign)  double doubleNumber;
@property (nonatomic, assign)  BOOL isMan;

@end
  • 定义完属性之后,需要在LCUserDefaultsModel.m里对每一个属性进行@dynamic操作,代码如下:

@implementation LCUserDefaultsModel

@dynamic name;
@dynamic gender;
@dynamic age;
@dynamic floatNumber;
@dynamic doubleNumber;
@dynamic isMan;
  • 如果涉及到设置默认值,那么只需要在LCUserDefaultsModel.m里重写'- (NSDictionary *)setupDefaultValues'方法就行了,其返回一个NSDictionary,规则是'@{@属性名称: @默认值}',比如上面提到的对'name'进行默认值设置,那就是返回@{@"name": @"狼居胥侯"},代码如下:

- (NSDictionary *)setupDefaultValues {
//  设置规则 @{@属性名称: @默认值}
    return @{@"name": @"lc",
             @"gender": @1,
             @"age": @20,
             @"floatNumber": @11.1,
             @"doubleNumber": @22.2,
             @"isMan": @YES,
             };
}
  • 从NSUserDefaults文件里取值,那么调用LCUserDefaultsModel单例的属性就行(getter方法),保存某一个值,只需要设置LCUserDefaultsModel的属性就行(setter方法)

/**
     * NSUserDefaultsModel是一个代替系统NSUserDefaults的第三方库
     * 使用步骤是:1.集成其生成一个子类LCUserDefaultsModel
                 2.在.h中声明属性并在.m中对属性进行@dynamic操作
                 3.重写setupDefaultValues对属性设置默认值
                 4.获取值以及保存值只需要调用单例的getter与setter方法就可以了
     */
    // 获取 LCUserDefaultsModel 单例
    LCUserDefaultsModel *userDefaultsModel = [LCUserDefaultsModel userDefaultsModel];
    //获取保存的值
    NSLog(@"name = %@", userDefaultsModel.name);
    NSLog(@"gender = %ld", (long)userDefaultsModel.gender);
    NSLog(@"age = %ld", userDefaultsModel.age);
    NSLog(@"floatNumber = %f", userDefaultsModel.floatNumber);
    NSLog(@"doubleNumber = %f", userDefaultsModel.doubleNumber);
    NSLog(@"isMan = %d", userDefaultsModel.isMan);
    // 设置并保存值
    userDefaultsModel.name = @"狼居胥侯";
    userDefaultsModel.gender += 1;
    userDefaultsModel.age += 1;
    userDefaultsModel.floatNumber += 1;
    userDefaultsModel.doubleNumber += 1;
    userDefaultsModel.isMan = !userDefaultsModel.isMan;
    // 再次获取设置新值之后的数据
    NSLog(@"name = %@", userDefaultsModel.name);
    NSLog(@"gender = %ld", (long)userDefaultsModel.gender);
    NSLog(@"age = %ld", userDefaultsModel.age);
    NSLog(@"floatNumber = %f", userDefaultsModel.floatNumber);
    NSLog(@"doubleNumber = %f", userDefaultsModel.doubleNumber);
    NSLog(@"isMan = %d", userDefaultsModel.isMan);

安装与导入

NSUserDefaultsModel支持Cocoapods,只需要再Podfile里写入"pod 'NSUserDefaultsModel'"再执行"pod install"就行
或者下载NSUserDefaultsModel代码,将NSUserDefaultsModel的.h与.m文件导入到自己的工程就可以使用了

相关源码推荐:

我来说两句
*滑动验证:
所有评论(31)
AlonMessi 2018-8-15 13:37:54
感谢分享,楼主V5~
回复
编程是什么 2018-8-15 13:38:01
感谢分享,楼主V5~
回复
Ek645 2018-8-15 13:38:07
code4app好的内容真的很多~赞
回复
BlueManlove 2018-8-15 13:38:19
好好 学习了 确实不错
回复
littleRed 2018-8-15 13:38:21
code4app好的代码demo真的很多,谢谢啦~
回复
Rf2698 2018-8-15 13:39:01
写的真的很不错
回复
17091080020 2018-8-15 13:40:45
正需要啊,感谢楼主无私分享!
回复
code4app热心网友 2018-8-17 09:34:44
楼主用心了,内容非常精彩。
回复
小猪也浪漫 2018-8-17 09:35:46
精华内容,楼主V5!
回复
1234下一页
提取码:  下载次数:6 状态:已购或VIP 售价:0(原价:15)金钱 下载权限:初级码农 
1924 1 6
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表
博聚网