iOS保存model数据(自定义Model 可以存放到本地)
1.先创建类目类:继承于NSUserDefaults
2其次前提:保存的model要实现NSCoding
3.在自定义的类目实现这两个方法
-(void)setCustomObj:(id)obj forKey:(NSString *)key;
-(id)customObjForKey:(NSString *)key;
在自定义的类目中实现这两个方法
-(void)setCustomObj:(id)obj forKey:(NSString *)key
{
if ([obj respondsToSelector:@selector(encodeWithCoder:)] == NO) {
NSLog(@"对象存入失败!对象必须实现NSCoding 协议的 encodeWithCoder:方法");
return;
}
NSData * encodeObject = [NSKeyedArchiver archivedDataWithRootObject:obj];
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:encodeObject forKey:key];
[defaults synchronize];
}
-(id)customObjForKey:(NSString *)key
{
NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults];
NSData * encodeObject = [defaults objectForKey:key];
if (encodeObject == nil) {
return nil;
}
id obj = [NSKeyedUnarchiver unarchiveObjectWithData:encodeObject];
return obj;
}
4.再次来到我们保存model中实现NSCoding协议
- (id)initWithCoder:(NSCoder *)decoder
{
self = [super initWithCoder:decoder];
if (self) {
self.cityId = [decoder decodeObjectForKey:@"cityId"];
self.cityName = [decoder decodeObjectForKey:@"cityName"];
self.cityLat = [decoder decodeObjectForKey:@"cityLat"];
self.cityLng = [decoder decodeObjectForKey:@"cityLng"];
self.firstCharacter = [decoder decodeObjectForKey:@"firstCharacter"];
self.subsidiaryBankId = [decoder decodeObjectForKey:@"subsidiaryBankId"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.cityId forKey:@"cityId"];
[aCoder encodeObject:self.cityName forKey:@"cityName"];
[aCoder encodeObject:self.cityLat forKey:@"cityLat"];
[aCoder encodeObject:self.cityLng forKey:@"cityLng"];
[aCoder encodeObject:self.firstCharacter forKey:@"firstCharacter"];
[aCoder encodeObject:self.subsidiaryBankId forKey:@"subsidiaryBankId"];
}
5.最后来到控制器中,实例化类目,就可以实现保存model
转载于:https://www.cnblogs.com/fantasy3588/p/4773777.html
iOS保存model数据(自定义Model 可以存放到本地)相关推荐
- django model数据 时间格式
from datetime import datetime dt = datetime.now() print '时间:(%Y-%m-%d %H:%M:%S %f): ' , dt.strftime( ...
- ExtJS Model数据实体模型
1.ExtJS数据模型基础 ExtJS数据包中重要的三类:Model(数据实体模型).Store(数据集)和Proxy(数据代理) ExtJS的数据模型主要包括: 数据实体模型:Model 数据实体模 ...
- iOS - NSUserDefaults 实现数据的持久化保存
前言 在开发的时候,我们经常会遇到一些场景,需要我们持久化保存一些数据.通常我们会将相对结构化的数据保存在远端或者本地的数据库中,而对于相对零散的变量数据,保存在数据库中是不太合适的.这时,接下介绍的 ...
- [golang gin框架] 4.自定义Model以及Gin 文件上传
一.Gin 中自定义 Model 关于 Model 如果应用非常简单的话,我们可以在 Controller 里面处理常见的业务逻辑,但是如果 有一个功能想在多个控制器.或者多个模板里面复用的话,那么就 ...
- 什么是php model类,thinkphp的自定义model类有什么作用?
请问,thinkphp的自定义model类有什么作用?如: <?php //自定义Modle类 namespace Home\Model; use Think\Model; class StuM ...
- APP如何保存数据?——iOS保存数据的4种方式
在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题.将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好.下面介绍一下数据保存的方式: 1.NSKeyed ...
- 万能的model数据选择列表
一.测试用例Person类说明: 头文件: #import <Foundation/Foundation.h> @interface Person : NSObject @property ...
- python保存与加载LGBM模型,并解决报错TypeError: Need at least one training dataset or model file or model string..
方法一(适用于sklearn接口:from lightgbm import LGBMClassifier) 比如现在有一个lgbm_model import joblib# 保存 joblib.dum ...
- 同样是保存模型,model.save()和model. save_weights ()有何区别
model.save()保存了模型的图结构和模型的参数,保存模型的后缀是.hdf5. model. save_weights ()只保存了模型的参数,并没有保存模型的图结构,保存模型的后缀使用.h5. ...
- iOS开发之数据存储
概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...
最新文章
- R语言临床预测模型的评价指标与验证指标实战:综合判别改善指数IDI(Integrated Discrimination Improvement, IDI)
- P2014 选课 (树形动规)
- C++虚函数实现多态的机制
- SSD框架训练自己的数据集
- 常见的CSS和HTML面试题
- [Asp.net core 3.1] 通过一个小组件熟悉Blazor服务端组件开发
- Java抓取淘宝/天猫商品详情
- LeetCode 1472. 设计浏览器历史记录(双栈)
- GPU CUDA 杭州宣讲会
- STM32工作笔记0014---认识emWin图形设计框架
- Delphi编译指令了解学习
- 神仙文献管理软件Mendeley 保姆级教程
- javaweb JSP JAVA 酒店预订系统j酒店管理系统民宿预订)酒店客房预订系统宾馆客房预订系统
- android 平板键盘布局,android 4.1 平板连接USB键盘,默认键盘布局
- 忍者必须死3突然服务器维修,《忍者必须死3》3月12日2:00停服维护公告
- MAC默认软件安装位置
- python绘制8×8棋盘_python图形工具turtle绘制国际象棋棋盘
- vue-happy-scroll实现上拉加载更多(vue)
- 0315 财经爬虫实战
- 量化交易 实战第十一课 回归法选股 part 1
热门文章
- 扎克伯格凌晨放大招,说几句话能造世界的那种
- 动视暴雪员工大罢工:因CEO被曝多次包庇高管性侵下属、本人曾性骚扰助理
- 咱们程序员,能吵吵就别动手!现在靠说就可以编程,支持Java、Python等10种语言|免费...
- ISC 2020技术日丨 网络空间危机四伏,如何发现威胁的蛛丝马迹?
- 深挖之后吓一跳,谷歌AI专利何止一个dropout,至少30项今日生效
- Oracle NULL 和空值
- 01-利用思维导图梳理JavaSE-Java语言基础
- spring注解@Component、@Repository、@Service、@Controller
- 在Anacoda中管理多个版本Python
- 省时省事省力 巧用阿里ECS D1构建大数据处理平台