iOS - 数据持久化---- NSUserDefaults & NSKeyedArchiver

iOS NSKeyedArchiver序列化后进行数据持久化(swift) NSKeyedArchiver序列化就我简单理解就是把iOS中的类转换为二进制数据,我们可以方便的把而进制数据存起来。接下来分别以iOS原有的类和自定义的类序列化存储做简单的说明: 使用NSUserDefaults存储一个很小的图片,当然了我们要知道实际存储的是一个二进制数据所以我们需要序列化:将图片转换为二进制数据 NSKeyedArchiver.archivedDataWithRootObje 阅读详情

NSUserDefaults

//1、获取一个NSUserDefaults引用:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
//2、保存数据
[userDefaults setInteger:1 forKey:@"segment"];
[userDefaults synchronize];
//3、读取数据
NSInteger i = [userDefaults integerForKey:@"segment"];


NSKeyedArchiver

// 数据源
NSString *str = @"abc";
NSString *astr = @"efg";
NSArray *array = [NSArray arrayWithObjects:str, astr, nil];
// 保存数据
NSString *Path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filename = [Path stringByAppendingPathComponent:@"test.plist"];
[NSKeyedArchiver archiveRootObject:array toFile:filename];
str = @"a";
astr = @"";
//加载数据
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile: filename];
str = [arr objectAtIndex:0];
astr =  [arr objectAtIndex:1];
NSLog(@"str:%@",str);
NSLog(@"astr:%@",astr);


NSUserDefaults + NSKeyedArchiver

//保存数据:
NSData *objColor = [NSKeyedArchiver archivedDataWithRootObject:[UIColor redColor]];
[[NSUserDefaults standardUserDefaults]setObject:objColor forKey:@"myColor"];
//读取数据:
NSData *objColor = [[NSUserDefaults standardUserDefaults]objectForKey:@"myColor"];
UIColor *myColor = [NSKeyedUnarchiver unarchiveObjectWithData:objColor];










【iOS】iOS持久化 iOS中的沙盒机制是一种安全体系。为了保证系统安全,iOS每个应用程序在安装时,会创建属于自己的沙盒文件(存储空间)。应用程序只能访问自身的沙盒文件,不能访问其他应用程序的沙盒文件,当应用程序需要向外部请求或接收数据时,都需要经过权限认证,否则,无法获取到数据。所有的非代码文件都要保存在此,例如属性文件plist、文本文件、图像、图标、媒体资源等,其原理是通过重定向技术,把程序生成和修改的文件定向到自身文件夹中。 阅读详情

相关推荐

iOS - Swift 数据持久化


 1、Sandbox 沙箱 iOS 为每个应用提供了独立的文件空间,一个应用只能直接访问为本应用分配的文件目录,不可以访问其他目录,每个应用自己独立的访问空间被称为该应用的沙盒。也就是说,一个应用与文件系统的交互绝大部分都被限制在它自己的应用沙盒内。 1)在新 App 被安装时,安装器会为应用创建一系列角色不同的容器(container)。 iOS 8.0 之...

rstbfveradsvc 412

[数据存储] NSUserDefaults & NSKeyedArchiver

NSUserDefaults:用来保存应用程序设置和属性、用户保存的数据。用户再次打开程序或开机后这些数据仍然存在。NSUserDefaults可以存储的数据类型包括:NSData、NSString、NSNumber、NSDate、NSArray、NSDictionary、BOOL。如果要存储其他类型,则需要转换为前面的类型,才能用NSUserDefaults存储。

专注移动设备开发 1458

iOS开发数据持久化技术详解与实战

实现 NSCoding 协议后,就可以使用 NSKeyedArchiver 和 NSKeyedUnarchiver 对对象进行归档与解档。若集合中包含自定义类的对象,不能直接进行持久化。必须先将对象归档为Data类型,再存入数组或字典中。虽然不能直接保存自定义类对象,但可以通过归档(Archiving)将对象转为Data类型进行存储。步骤如下:自定义类需遵循NSCoding协议。使用将对象编码为Data。使用存入。读取时用解码。

weixin_42234168的博客 903

ios 数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Writ

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

weixin_34295316的博客 181

笔记——Oracle19c

Oracle阅读笔记

weixin_63819458的博客 1350

Spring Authorization Server自定义密码模式:突破标准OAuth2限制,实现MFA与复杂业务集成

OAuth 2.0授权框架是构建现代应用安全体系的基石,其密码模式(Resource Owner Password Credentials Grant)提供了一种直接的资源所有者凭证交换令牌的机制。该模式的核心原理是客户端收集用户密码并直接向授权服务器请求访问令牌,适用于受信任的客户端场景。在技术价值上,它简化了某些传统应用的OAuth集成流程。然而,标准实现往往难以满足复杂的现实业务需求,例如需要集成多因素认证(MFA)、对接外部LDAP目录服务或执行自定义密码加密校验等场景。Spring Authori

weixin_34302561的博客 437

智元机器人开源具身仿真框架 Genie Sim 入门教程

GenieSim是AgiBot推出的具身智能仿真框架,提供完整闭环开发管道,包括轨迹生成、模型训练和基准测试。框架支持Docker容器化部署,要求Ubuntu 22.04和NVIDIA硬件环境。主要功能涵盖: 支持12种基准测试任务 提供ADER评估框架 集成UniVLA/RDT等基线模型 支持PICO/键盘遥操作 具备轨迹记录回放功能 提供完整API控制接口 开发者可通过Hugging Face获取场景资产,使用标准化ROS主题与仿真环境交互。框架特别优化了碰撞检测和抓取物理模拟,适用于从简单抓取到复杂操

2506_90492529的博客 2542

【iOS】数据持久化

出于安全的原因,iOS应用安装的时候为每个APP都分配了独立的目录,APP只能对自己的目录进行操作,这个目录就是沙盒。是苹果提供的一套缓存机制,键值对形式存储,当内存不足时,NSCache会自动清理释放内存,NSCache设置缓存对象数量和占用内存的大小,当缓存超出时自动释放。通过路径重定向,让程序在运行时产生或修改的 plist、文本、图片、图标、媒体等资源文件,不再写入原始位置,而是写入程序自己的目录,从而实现文件隔离和安全管理。可以看到方法的翻译值是一个数组,我们取其中的第一个元素就行。

2501_91546205的博客 429

构建一个基于Simulink的LC滤波器仿真模型

需求分析LC滤波器(Inductor-Capacitor Filter)是一种常见的无源滤波器,广泛应用于电力电子、通信、音频处理等领域。其主要作用是平滑输入信号中的高频谐波成分,保留低频或直流成分,从而提高输出信号的质量。在电力电子系统中,LC滤波器常用于逆变器、整流器等设备的输出端,以减少开关噪声和电磁干扰(EMI),确保输出电压和电流的稳定性。本项目将基于Simulink平台,开发一个完整的LC滤波器仿真模型,涵盖从电源输入到滤波输出的整个过程,并通过PI控制器实现对滤波效果的闭环控制。

MHD0815的博客 740

基于ESP32的智能无线广播系统开发博客

通过本项目的开发,我们成功地实现了基于ESP32的智能无线广播系统。该系统不仅具备传统广播的功能,还实现了通过Wi-Fi无线传输音频、实时广播和智能控制等多种先进功能。未来,随着技术的进一步发展,我们还可以扩展更多功能,如智能推荐广播内容、支持语音识别和控制等。希望本项目能够为嵌入式开发人员提供一些思路和参考,帮助大家在实际开发中更好地应用ESP32平台,开发出更加智能和实用的无线广播系统。

2201_76125393的博客 423

iOS中的数据持久化

原文出处: 王瑞华    本文由我们团队的王瑞华童鞋撰写。 数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。 数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。在iOS开发中,有很多种数据持久化方案,本文主要介绍 plist文件,NSKeyedArchiver,SQLite3,NSUserDefaults。

LLy_Alex的博客 607

SY6982C 7.4V锂电池1A充电模块原理图设计,已量产

在手持设备、便携工具与小型无人机等场景中,7.4V(2S)锂聚合物电池的应用愈发广泛。这类电池对充电系统的安全性、效率与兼容性提出了明确要求:需支持 USB 5V 输入、1A 安全充电,同时具备多重保护机制。本文将结合一款基于 SY6982C 的充电原理图,深入解析其电路设计与技术亮点。

不脱发的程序猿 362

iOS OC NSUserDefaults

@end} @end} @end} @end@end@end容器内部只能存原生类型,嵌套Model必崩,必须归档后再存储。

2502_93780134的博客 349

PCL 将对象模板与点云对齐【2025最新版】

PCL模版匹配算法的使用案例,博客长期更新,本文最近更新时间为:2025年1月18日。

点云侠的博客 5379

关于 Nginx 监听地址 0.0.0.0 的详细解释

0.0.0.0在Nginx配置中表示监听服务器所有网络接口(包括公网IP、内网IP和本地回环地址),这是默认配置。当使用listen 80;时,Nginx会接受通过服务器任何IP地址的80端口访问请求。相比只监听特定IP,这种配置更通用,但也意味着服务会对外网开放,需注意安全风险。可通过netstat命令验证监听状态,显示0.0.0.0:80即表示正确配置。

weixin_43674738的博客 1567

ios 保存数据NSKeyedArchiver,NSUserDefaults,Write,SQLite

在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题。将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好。下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法。前一个方法告诉系

Kamto_6的专栏 1258

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【iOS数据持久化】Plist使用

iOS数据持久化Plist使用 iOS 端数据持久化就是把数据保存在本地,常用于基本信息储存,应用配置,应用支持数据源,网络请求缓存等。主要有如下几种方式: 方式 介绍 特点 Plist文件 属性列表(Property List),通过xml的方式保存 本质为XML格式 Preference(NSUserDefaults) 偏好设置,通过key-value存取,一般用于基本用户...

小桥流水哗啦啦,iOS Coder 哒哒哒 638

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机控制技术及应用

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

IOS开发—数据存储(直接写入、NSUserDefaults、NSkeyedArchiver)

数据存储(直接写入、NSUserDefaults、NSkeyedArchiver) ios中常用文件存取的方法有: 1、直接写文件的方式,可以存储的对象有NSString、NSArray、NSDictionary、NSData、NSNumber,数据全部存放在一个属性列表文件(*.plist文件)中。 2、NSUeserDefaults(偏好设置),用来存储应用设置信息,文件放在pe

Lotheve的私房菜 2493

iOS NSUserDefaults 简介,使用 NSUserDefaults 存储自定义对象

摘要 NSUserDefaults适合存储轻量级的本地数据,一些简单的数据(NSString类型的)例如密码,网址等,NSUserDefaults肯定是首选,但是如果我们自定义了一个对象,对象保存的是一些信息,这时候就不能直接存储到NSUserDefaults了 NSUserDefaults 存储自定义对象 点击打开链接:https://my.oschina.net/u/12453

六六的博客 1万+

【iOS】数据存储与持久化

项目总结时,涉及了很多数据存储与持久化,这里做一个对比总结。

2401_87841908的博客 273

IOS数据持久化之归档NSKeyedArchiver, NSUserDefaults,writeToFile

//2.文件读写 //支持:NSString, NSArray , NSDictionay, NSData //注:集合(NSArray, NSDictionay)中得元素也必须是这四种类型, 才能够进行文件读写 //string文件读写 NSString *string = @"假如给我有索纳塔"; ...

weixin_30664539的博客 131

iOS 数据持久化 (一)

iOS开发常用的数据持久化方式有NSUserdefaults(属性列表),NSKeyedArchiver(归档/解归档),write , SQLite 3, CoreData等。 ###1.【属性列表】 NSUserDefaults 是一个单例,整个程序中只有一个实例对象,用于数据的永久保存,也是使用最简单。 ⚠️支持的数据类型有:NSNumber,double,float,NSInteger,N...

hubangguo的博客 360
上一篇: iOS - 常用正则表达式
下一篇: iOS - 消息推送
Micro90
博客等级 码龄12年 12粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值