(有码)OC将对象归档到本地文件

TMP112/TMP102温度传感器驱动开发与嵌入式实战 数字温度传感器是嵌入式系统环境感知的核心器件,其通过I²C等标准总线实现高精度、低功耗测温。原理上依赖ΔΣ模数转换与二进制补码数据格式,结合寄存器配置实现模式控制、阈值报警与功耗管理。技术价值体现在±0.5°C级精度、1μA级静态电流及SOT-563超小封装带来的系统集成优势。广泛应用于工业MCU热监控、电池物联网终端、医疗电子温度补偿及汽车ECU板级测温等场景。本文围绕TMP112/TMP102展开,深入解析寄存器协议、硬件接口约束、HAL驱动分层设计、FreeRTOS任务调度及生产级校准方法,覆盖从芯片 阅读详情
将对象归档到本地文件
归档的过程就是数据编码的过程
解档的过程就是反编码的过程
编码:person对象--->NSData对象
要进行归档必须遵守协议(NSCoding)
先对属性编码,再对person对象编码(由内向外)

Person.h
@interface Person:NSObject<NSCoding>
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) NSInteger age;
@property (nonatomic, copy) NSString *sex;

Person.m
//解档时,系统会自动调用该方法初始化对象
- (id)initWithCoder:(NSCoder*)aDecoder{
self = [super init];
if(self){
_name = [aDecoder decodeObjectForKey:@"name";
_age = [aDecoder decodeObjectForKey:@"age";
_sex = [aDecoder decodeObjectForKey:@"sex";
}
return self;
}

//归档时,系统会自动调用该方法
- (void)encodeWithCoder:(NSCoder *)aCoder{
[aCoder encodeObject:_name forKey:@"name"];
[aCoder encodeObject:_age forKey:@"age"];
[aCoder encodeObject:_sex forKey:@"sex"];
}

main.m
Person *person = [[Person alloc]init];
person.name = @"xiaohong";
person.age = 18;
person.name = @"female";

//将对象归档
NSData *personData = [NSKeyArchiver crchiveredDataWithRootObject:person];

//写入本地文件(如果看看结构,可以该后缀名.plist)
[personData writeToFile:@"路径名/文件名.plist" atomically:YES];

//解档 把文件转为Data对象
NSData *personData = [NSData dataWithContentOfFile:@"文件"];
Person *person1 = [NSKeyUnarchiver unarchiverObjectWithData:person1Data];

//多个对象归档
Person *person2 = [[Person alloc]init];
person.name = @"xuaihong";
person.age  = 20;
person2.sex = @"male";

NSDictionary *dict = @{@"name" : @"Tom"};

//把对象转换成data
NSMutableData *data = [NSMutableData data];

//生成归档对象,归档开始
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];

//data是编码后的对象数据的容器,开始归档后,调用
encodeObject:   forKey: //系统自动把转码后的数据传入data
[archiver encodeObject:person2 forKey:@"person"];

//编码字典对象
[archiver encodeObject:dict forKey:@"dict"];

用Arduino和FS-i6X遥控器,从零开始打造你的第一只仿生扑翼蝴蝶(附完整代码解析) 本文详细介绍了如何利用Arduino和FS-i6X遥控器从零开始制作仿生扑翼蝴蝶,包括硬件准备、电路连接、代码解析和调试技巧。通过完整的代码示例和参数说明,帮助读者快速掌握仿生机器人的制作要点,实现蝴蝶的自然飞行效果。 阅读详情

相关推荐

Python-OPCUA 实现西门子PLC数据批量读写与自动化监控

本文详细介绍了如何使用Python结合OPC UA协议,实现对西门子PLC数据的批量读写与自动化监控。通过搭建开发环境、利用KEPserverEX作为通信桥梁,并配合Python代码实战,读者可以掌握高效的数据采集、批量写入以及构建带报警功能的监控系统的方法,从而大幅提升工业自动化场景下的数据处理效率和系统灵活性。

www00的博客 180

iOS开发-数据持久化-简书

在程序开发中,数据层永远是程序的核心结构之一。我们将现实事物进行抽象,使之变成一个个数据。对这些数据的加工处理是代码中能体现技术水平的一大模块,比如数据的请求、解析、缓存、持久化等等。适当的对数据进行持久化存储可以实现应用的离线功能,以此提高用户体验。在iOS开发中,苹果提供了四种持久化方案供我们选择。这些方案分别包括属性列表(plist)、数据归档(NSKeyedValueArchiver/NS

u012338816的专栏 1300

PTA 学生信息的那些操作:添加记录(结构体)

这是河南工业大学自主命题的一道基础题,题目如下: 有一学生成绩表,包括学号、姓名、3门课程成绩。已知该成绩表按学号升序排序。请编程实现,添加一个新的学生信息,且使成绩表仍按学号有序;若待添加的学号与已有学号重复,则输出错误信息,拒绝添加。 输入格式: 首先输入一个整数n(1<=n<=100),表示学生人数; 然后输入n行,每行包含一个学生的信息:学号(12位)、姓名(不含空格且不超过20位),以及3个整数,表示3门课成绩,数据之间用空格隔开。 最后一行输入一个待添加的学生信息,包括学号

weixin_63617665的博客 3156

oc中对文件的操作(加载已有文件数据,存取文件)

----------------------------File.h------------------------------- #import <Foundation/Foundation.h> @interface FileHelper : NSObject +(NSMutableArray *)loadData;//加载数据并保存在数组中 +(void)...

weixin_30905133的博客 216

vasp-自旋轨道耦合(SOC)计算步骤

在VASP中执行自旋轨道耦合(SOC)计算,具体的计算步骤如下: 结构优化获取CONTCAR文件 自洽计算(collinear normal VASP calculations)获取IBZKPT,CHGCAR和WAVECAR文件。 SCF+SOC计算,在此步骤中,将步骤2中的IBZKPT复制为KPOINTS,以便两个步骤具有相同的k网格,因此可以读取步骤2中的CHGCAR和WAVECAR文件。 能带结构计算,在此步骤中,将KPOINTS改为高对称点,读取步骤3中的CHGCAR和WAVECAR文件。

懒散的鱼与消失的猫 3万+

逆向分析PerimeterX px3:从混淆JS到生成有效令牌的完整实战

在Web安全与数据采集领域,反自动化防护是保障服务稳定和数据安全的关键技术。其核心原理是通过收集浏览器环境指纹和用户行为特征,动态生成加密令牌来区分真人用户与自动化脚本。这项技术的工程价值在于平衡安全性与用户体验,广泛应用于电商、金融、社交等需要防止恶意爬虫和自动化攻击的场景。本文聚焦于业界广泛部署的PerimeterX px3防护方案,通过JavaScript逆向工程,深入剖析其令牌生成机制。我们将探讨如何运用动态调试、反混淆工具和算法还原等关键技术,突破px3的防护壁垒,为自动化测试和数据采集提供稳定可

diankui6178的博客 522

OC学习16——对象归档

转载自 OC学习篇之---归档和解挡 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOutputStream来进行操作的。当然在操作的这些对象都是需要实现一个接口:Serializable,同样的OC中操作的对象也是需要实现一个协议的,后面会说到。 一、已有类型的归档和解档 首先来看一个简单的例子: 1 // ...

weixin_38166905的博客 149

OpenOCD入门到精通:第20章 Target 子系统源码分析

摘要:本章深入分析OpenOCD Target子系统的核心实现机制。重点包括:1) 通过target_type虚函数表实现多架构抽象,支持ARM、RISC-V等30+种目标;2) ARM ADIv5协议栈实现,包含DAP/AP核心数据结构和访问机制;3) 分层架构设计,从调试接口层到传输层的完整调用链路。系统采用面向对象思想,统一管理目标状态、寄存器缓存、断点/观察点等调试要素,为上层提供标准化的调试操作接口。

从事嵌入式linux android驱动开发,拥有全栈能力 176

iOS自定义对象保存到本地文件

我是将聊天记录存到本地,里边用到了自定义的对象,把数据转成Data格式存到本地,在转Data格式的时候报错了,这时候需要先将自定义对象进行归档才可以转Data格式。方法如下: 一、在.h文件中声明协议 二、在.m文件中实现encodeWithCoder和intiWithCoder方法

miaocuilin的专栏 3318

【音视频】PJSIP库——示例简介、C++类说明

aectest音频回声消除测试工具,用于演示音频处理模块中的回声消除(AEC)功能,通常用于 VoIP 场景中优化语音质量。auddemo音频播放 / 录制演示,展示如何使用 PJProject 的音频接口进行基本的音频数据采集、播放和处理,例如波形显示或格式转换。stereotest立体声处理测试,可能用于演示多声道音频的处理方式,如混音、声道分离等。tonegen音频信号生成工具,用于生成测试用的音频信号(如正弦波、音调等),常用于音频设备测试或调试。recfile。

郭老二 434

第14.1章 高翔博士2025年11月最新开源框架Lightning-LM源码学习解读(一):激光-IMU定位+建图算法各模块简介

Lightning-LM:高效激光SLAM定位系统 该框架基于模块化设计,通过激光-IMU融合实现快速建图与定位,核心特点包括: 极速性能:纯CPU运行(建图1.2核/定位0.8核) 模块化架构:包含激光里程计(LIO)、地图管理、回环检测等独立模块 动态场景支持:地图分块加载、动静态图层分离 多模式适配:支持ROS2环境下的在线/离线运行 关键模块包括前端里程计(core/lio)、2D/3D地图转换(core/g2p5)、轻量优化库(core/miao)等,通过系统控制器(core/system)协调流

行知SLAM 2433

iOS:NSCoder的方法encodeRootObject:

-(void)encodeRootObject:(id)rootObject

Alisa200920的专栏 816

2023年全国青少年信息素养大赛复赛真题(C++智能算法复赛真题:带解析)

2023年全国青少年信息素养大赛复赛真题(C++智能算法复赛真题:带解析)

王老师青少年编程 2112

OC多个对象的归档和解归档

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34390996的博客 111

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【IOS 开发学习总结-OC-37】★文件 I/O——对象归档

何为对象归档?对象归档——就是用某种格式把一个或多个对象保存到指定文件中,方便以后从文件中恢复它们。类似于其他语言中的序列化机制。 归档包括2方面的操作:1,将对象写入指定文件;2,从文件中恢复这些对象。使用NSKeyedArchiver&NSKeyedUnarchiver归档和解档使用NSKeyedArchiver将对象进行归档,若要恢复这些对象,要用NSKeyedUnarchiver。 N

Albert的专栏 1596

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

OC之归档

// // main.m // 归档 // // Created by New-World on 13-11-5. // Copyright (c) 2013年 Gary. All rights reserved. // #import int main(int argc, const char * argv[]) { @autoreleasepool { #pragma

时光代码 1371

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

OC视频笔记-对象的复制与归档

复制对象:源对象和副本对象是两块不同的内存区域。 对象具备复制功能,必须实现 1):协议 2):协议 3):常用的可复制对象有:NSNumber,NSString,NSArray,NSDictionary, NSMutableDictionary,NSMutableArray,NSMutableString. 复制对象的种 类 1):copy:产生对象的副本

SkewRain的专栏 659

OC学习篇之---归档和解挡

OC学习篇之---归档和解挡

qq_44906504的博客 154

OC-归档:json/plist

//归档: 就是把数据按照定义的格式存储到文件中,方便从文件恢复对象数据 //解归档: 从归档文件中读取数据到对象变量中 #import int main(int argc, const char * argv[]) {     @autoreleasepool {         //归档         /*NSData *data =

u012360598的专栏 1063

OC对象归档

转自http://blog.youkuaiyun.com/jiangwei0910410003/article/details/41872551 前几篇文章说到了OC中的Foundation框架:http://blog.youkuaiyun.com/jiangwei0910410003/article/details/41852835,今天我们来看一下OC中的一个重要知识点:归档 OC中的归档就是将对象写入到一个

v7595v的专栏 560

iOS:文件归档和解归档的详解和使用

文件归档和解归档: 用途: 所谓文件归档,就是把需要存储的对象数据存储到沙盒的Documents目录下的文件中,即存储到了磁盘上,实现数据的持久性存储和备份。解归档,就是从磁盘上读取该文件下的数据,用来完成用户的需求。对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径的读取文件的内容(也称为接档,反序列化),(对象归档的文件是...

dienangpiao2051的博客 374

OC 归档和解档 总结

//----------------第一种形式------------------------------------                  //对象->文件   ************ 归档  ***************         NSArray *array = [NSArray arrayWithObjects:@"one",@"two",@"three",@"

ycw343465134的专栏 689

oc 对象归档解档<NSCode>

july 31,2014 对象编码把对象的类特征以及对象状态转化某种格式,这种格式可存储,也可在进程间传递。类的类型以及实例数据会被写入到某种字节流里面,当程序结束的时候,该字节流可进行持久化。程序启动的时候,新分配对象可以解码之前保存的自身描述,然后把自己恢复到之前运行时的状态。编码通常需和归档协作。归档将对象图转化成一种可以写进文件系统的格式(档案),解档则是在档案上执行操作

学习笔记 1168

OC语言基础十一:数据持久化存储,plist文件,NSUserDefaults,归档和解档

文章目录plist数据写入plist文件plist文件种取出数据NSUserDefaults拿到NSUserDefaults的对象写数据读数据移除已经添加过的keyvalue打印所有键值对 plist plist是OC持久化存储的一种手段,还有NSUserdefaults,相当于用户偏好设置,归档和存档,数据库操作。 plist的根节点必须是字典Dictionary 或者数组Array类型。 pl...

煮酒Shae 612

OC基础之对象归档与读取文件

先占个坑,后面补充

移动开发砖家-扫地僧 565

oc自学-归档

归档是一个过程,即用魔咒格式来保存一个或多个对象,以便以后还原这些对象。通常,这个过程包括将(多个)对象写入文件中,以便以后读取该对象。 属性列表和带键值的编码。 使用XML属性列表进行归档 Mac OS X上的应用程序使用XML属性列表(或plists)存储诸如默认参数选择、应用程序选择和配置信息这样的数据。然而,这些列表的归档用途是有限的,因为当为某个数据结构创建属性列表时,并没

190
上一篇: (有码)OC中的文件操作
下一篇: (有码)数据库常用方法和json数据解析
bin236
博客等级 码龄11年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值