在NSUserDefaults中存储自定义类型的数据
将自定义的类的数据以数组的形式直接存储到NSUserDefaults中会报错,需要进行转换,且需要将该类实现NSCoding协议。
e.g.
存储过程
NSMutableArray *archiveArr = [NSMutableArray arrayWithCapacity:self.STNArrayList.count];for (STNArrayList *singleList in self.STNArrayList) {NSData *listEncodedObject = [NSKeyedArchiver archivedDataWithRootObject:singleList];[archiveArr addObject:listEncodedObject];} //可以将archiveArr存入NSUserDefaults中了
读取过程
NSArray *localSavedArr = ;//从NSUserDefaults中读取本地存储的数据NSMutableArray *mutableArr = [NSMutableArray arrayWithCapacity:localSavedArr.count];for (NSData *data in localSavedArr) {STNArrayList *singleList = [NSKeyedUnarchiver unarchiveObjectWithData:data];[mutableArr addObject:singleList];}// 现在可以访问mutableArr来获得STNArrayList的值
在STNArrayList类中实现NSCoding协议
- (id)initWithCoder:(NSCoder *)aDecoder {if (self == [super init]) {_title = [aDecoder decodeObjectForKey:JSON_KEY];}return self; }- (void)encodeWithCoder:(NSCoder *)aCoder {[aCoder encodeObject:_title forKey:JSON_KEY]; }
转载于:https://www.cnblogs.com/stonewong/p/4931630.html
在NSUserDefaults中存储自定义类型的数据相关推荐
- Java中Collection集合常用API - Collection存储自定义类型对象
文章目录 Collection常用API Collection存储自定义类型对象 Collection常用API Collection集合API Collection是单列集合的祖宗接口,因此它的功能 ...
- AutoCAD .Net 在dwg文件中存储自定义数据
问题 我需要在 dwg 文件中存储一些信息,以额外描述图形文件并使它能够和其它软件程序集成. 请问怎样才能在 dwg 文件中写入自定义数据并读取? 回答 你可以使用 Named Object Dict ...
- GreenDao存储自定义类型对象解决方案(转)
最近公司项目选用GreenDao作为Android客户端本地数据库的对象关系映射框架.对于GreenDao虽然以往也有简单用过,但这还是笔者第一次在实际业务中使用.碰到了题目所述的两个问题,虽然在Tu ...
- 在配置文件(.settings、.config)中存储自定义对象
引言 我前面曾写过一篇<使用配置文件(.settings..config)存储应用程序配置>,我在其中指出"settings无法实现对一些复杂类型及自定义类型的支持". ...
- HashSet存储自定义类型元素
HashSet存储自定义类型元素 给HashSet中存放自定义类型元素时,需要重写对象中的hashCode和equals方法,建立自己的比较方式,才能保证HashSet集合中的对象唯一 创建自定义类 ...
- C语言中的自定义类型
C语言中的自定义类型 (一)结构体 结构体的声明 结构体是一些值的集合,这些值称为成员变量,结构体的成员可以是不同类型的变量: 结构体的声明 struct tag { member-list; }va ...
- 在SQL数据库中存储纬度和经度数据时要使用的数据类型是什么? [重复]
本文翻译自:What datatype to use when storing latitude and longitude data in SQL databases? [duplicate] Th ...
- 集合中存储自定义对象源代码
集合中存储自定义对象: package attention;import java.util.ArrayList; import java.util.Collection; import java.u ...
- 本实例演示往TreeSet集合中存储自定义对象
1 package JiHe.Set; 2 3 import java.util.Iterator; 4 import java.util.TreeSet; 5 6 /* 7 * 本实例演示往Tree ...
最新文章
- 关于组织参加2020年全国大学生智能汽车竞赛山东赛区比赛的通知
- Nodejs的模块系统以及require的机制
- ansible+powershell DSC 可以管理windows server了
- 给年轻程序员的几句话
- bug__android studio 出现布局文件不提示,且点击代码不能跟踪代码
- 计算机软件在矿井地质中的应用,(完整版)遥感导论知识点整理(梅安新版)
- 洛谷P3155:叶子的染色(树形dp)
- 使用PrimeFaces开发数据导出实用程序
- [转载] java虚拟机 jvm 出入java栈 栈空间内存分配
- 【C语言】输入一个字符串,并对字符串中的偶数位置的字符按从小到大的顺序排序,奇数位置的字符不动,输出排序后的结果...
- Centos7 安装mysql 需要自己下载 rpm
- iPhone 12s Pro渲染图曝光:屏幕和相机将成升级重点
- 【ElasticSearch】Es 源码之 SearchTransportService 源码解读
- 细数继承与派生(纯干货推荐)1.0
- 软件、硬件版本号命名规范
- 虚拟机桥接模式设置IP
- 用Python批量生成字幕图片用于视频剪辑
- java 及时释放内存_Java里可以自动释放的不只是内存,只要是“资源”,都可以自动释放!轻松加愉快!...
- python中国大学慕课网_高级语言程序设计(Python)中国大学慕课搜题网站
- vue项目中eslint规则校验配置
热门文章
- C++ 11 深度学习(三)范围for、new内存动态分配、nullptr
- LeetCode 面试题55 二叉树的深度
- LeetCode 344 反转字符串
- C/C++打造《百万级人脸识别系统》
- android 活动销毁不了,即使活动已经销毁,AsyncTask也不会停止
- python面向对象编程138讲_Python面向对象编程简单讲解
- android 多个复选框,Android UI控件之CheckBox(复选框、多选框)
- js 点击侧边栏展示内容_上海SEO优化网站侧边栏一般添加什么内容
- 网管交换机和非网管交换机有什么区别?
- 4G物联网网关和工业路由器的区别