iOS 数据归档----温故而知新
#import "StudyViewController.h"
#import "person.h"
@interface StudyViewController ()
@property (nonatomic, copy)NSString *filePath;
@end
@implementation StudyViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
person *p1 = [[person alloc]init];
p1.name = @"zhangshan";
person *p2 = [[person alloc]init];
p2.name = @"lisi";
person *p3 = [[person alloc]init];
p3.name = @"wangwu";
NSArray *pathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filePath = [pathArr[0] stringByAppendingPathComponent:@"model"];
self.filePath = filePath;
//归档单个数据
//[NSKeyedArchiver archiveRootObject:p toFile:filePath];
//归档多个数据
NSMutableData *data = [[NSMutableData alloc]init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[archiver encodeObject:p1 forKey:@"p1"];
[archiver encodeObject:p2 forKey:@"p2"];
[archiver encodeObject:p3 forKey:@"p3"];
[archiver finishEncoding];
if ([data writeToFile:self.filePath atomically:YES]) {
NSLog(@"归档成功。。。");
}
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
if ([[NSFileManager defaultManager]fileExistsAtPath:self.filePath]) {
//解档单个数据
// person *p = [NSKeyedUnarchiver unarchiveObjectWithFile:self.filePath];
// NSLog(@"p.name =%@",p.name);
//解档多个数据
NSData *data = [NSData dataWithContentsOfFile:self.filePath];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data];
person *p1 = [unarchiver decodeObjectForKey:@"p1"];
person *p2 = [unarchiver decodeObjectForKey:@"p2"];
person *p3 = [unarchiver decodeObjectForKey:@"p3"];
NSLog(@"p1 =%@\np2 =%@\np3 =%@",p1.name,p2.name,p3.name);
}
}
@end
#import <Foundation/Foundation.h>
@interface person : NSObject<NSCoding>
@property (nonatomic, copy)NSString *name;
@end
#import "person.h"
@implementation person
-(instancetype)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self) {
self.name = [aDecoder decodeObjectForKey:@"name"];
}
return self;
}
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.name forKey:@"name"];
}
@end
iOS 数据归档----温故而知新的更多相关文章
- iOS开发笔记-swift实现iOS数据持久化之归档NSKeyedArchiver
IOS数据持久化的方式分为三种: 属性列表 (plist.NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data.第三方类库等 归档(又名 ...
- IOS数据存储之归档/解档
前言: 前天学习了NSUserDefaults,我们知道NSUserDefaults不能保存自定义对象,所以我们今天来认识一下归档(NSKeyedArchiver)和解档(NSKeyedUnarchi ...
- iOS数据存储之对象归档
iOS数据存储之对象归档 对象归档 对象归档是iOS中数据持久化的一种方式. 归档是指另一种形式的序列化,但它是任何对象都可以实现的更常规的类型.使用对模型对象进行归档的技术可以轻松将复杂的对象写入文 ...
- iOS 数据持久化(1):属性列表与对象归档
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...
- IOS数据持久化之归档NSKeyedArchiver
IOS数据持久化的方式分为三种: 属性列表 (自定义的Property List .NSUserDefaults) 归档 (NSKeyedArchiver) 数据库 (SQLite.Core Data ...
- iOS数据持久化-OC
沙盒详解 1.IOS沙盒机制 IOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文 ...
- iOS 数据持久化(扩展知识:模糊背景效果和密码保护功能)
本篇随笔除了介绍 iOS 数据持久化知识之外,还贯穿了以下内容: (1)自定义 TableView,结合 block 从 ViewController 中分离出 View,轻 ViewControll ...
- iOS数据存储之属性列表理解
iOS数据存储之属性列表理解 数据存储简介 数据存储,即数据持久化,是指以何种方式保存应用程序的数据. 我的理解是,开发了一款应用之后,应用在内存中运行时会产生很多数据,这些数据在程序运行时和程序一起 ...
- iOS数据存储
[reference]http://www.infoq.com/cn/articles/data-storage-in-ios 谈到数据储存,首先要明确区分两个概念,数据结构和储存方式.所谓数据结构就 ...
随机推荐
- UTF-8和GBK有什么区别
UTF-8和GBK有什么区别 2017年06月03日 18:10:43 阅读数:6516 GBK是在国家标准GB2312基础上扩容后兼容GB2312的标准(好像还不是国家标准).GBK编码专门用来解决 ...
- 记录-eureka
我的工程目录是这样的: eureka- server:服务端 EurekaServerApplication的内容: 服务端配置文件内容: eureka-server :服务端 pom 文件: < ...
- MVC开发T4代码生成之二----vs模板扩展
在上一篇MVC开发T4代码生成之一----文本模板基础中介绍了与T4模板相关的基础知识,并对MVC内使用T4模板添加视图做了介绍.知道了T4模板的使用后自然就想着怎么对vs自带的T4模板进行扩展,添加 ...
- 6. Redis复制
6. Redis复制6.1 配置6.1.1 建立复制6.1.2 断开复制6.1.3 安全性6.1.4 只读6.1.5 传输延迟6.2 拓扑6.3 原理6.3.1 复制过程6.3.2 数据同步6.3.3 ...
- log4j.properties配置与将异常输出到Log日志文件实例
将异常输出到 log日志文件 实际项目中的使用: <dependencies> <dependency> <groupId>org.slf4j</groupI ...
- 20170506计划-----(基于python查询oracle语句)
在日常的工作中,经常接到开发同事查询生产SQL的请求,公司又不允许对开发开放查询SQL的权限,并且查询的堡垒机又很慢,计划做一个可以自动查询SQL的小工具,一周内完成吧. 大概功能实现了,一些涉及敏感 ...
- UI设计学习之工具中的色彩模式分析
图像根据其呈现的颜色样式分为多种色彩模式,常见的为RGB模式.CMYK模式.灰度模式.位图模式和索引模式. RGB模式 这是Photoshop最常用的颜色模式,也称之为真彩色颜色模式,在RGB模式 ...
- Android学习(三)
学号 20189214 <Android程序开发>第八周学习总结 教材学习内容总结 GridView GridView和ListView一样是AbsListView的子类; 都需要一个Ad ...
- java学习(五)
学号 20189214 <Java程序设计>第五周学习总结 教材学习内容总结 输入输出 文件系统可以包含3种类型的对象:文件.目录和符号链接. 一个文件或路径是一个java.io.File ...
- Google资深工程师深度讲解Go语言完整教程
资源获取链接点击这里 欢迎大家来到深度讲解Go语言的课堂.本课程将从基本语法讲起,逐渐深入,帮助同学深度理解Go语言面向接口,函数式编程,错误处理,测试,并行计算等元素,并带领大家实现一个分布式爬虫的 ...