当前位置: 首页 > news >正文

IOS开发之 归档总结

只针对于Foundation对象的归档:

使用XML属性列表归档,结果物为XML文件,属性列表归档只针对于Foundation对象,若数组或字典集合中有某些自定义的类的对象,则不能用这个方法归档。

归档使用的方法:

使用Foundation类中自带的方法:- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;

相对应的解析方法:-(id)initWithContentOfFile:(NSString *)filePath;

这两个方法是相对应的。用自带的方法归档,就必须用自带的方法读取文件。如果用别的方法读取会出现异常。

 

归档自定义类的方法:

用NSArchiver和NSKeyedArchiver归档。

在IOS SDK中没有NSArchiver(NSArchiver 是mac os SDK中的方法)。只能用 NSKeyedArchiver 和 NSKeyedUnArchiver进行归档和解析操作。

NSArray *array=@[@"1",@"2",@"3"];

[NSKeyedArchiver archiveRootObject:array toFile:@"arrTemp"]; //归档操作

NSArray *arr=[NSKeyedUnarchiver unarchiveObjectWithFile:@"arrTemp"]; //读取文件操作

 

自定义的类用NSKeyedArchiver进行带键值对的归档时要遵循<NSCoding>协议方法并实现。

//进行归档的编码方式

- (void)encodeWithCoder:(NSCoder *)aCoder

{

    [aCoder encodeObject:bookName forKey:@"name"];

}

 

 //读取文件进行解码的方式

- (id)initWithCoder:(NSCoder *)aDecoder

{

   self.bookName = [aDecoder decodeObjectForKey:@"name"];

 return  self;

}

 

转载于:https://www.cnblogs.com/csdnmc/p/3974686.html

相关文章:

  • 创建App IDs时选择App ID Prefix才能勾选push notifications
  • [Linux] day07——查看及过滤文本
  • TranslateAnimation详解
  • CSS编码设置篇utf-8与gb2312互转换
  • 552 you must authentication
  • 安裝PHPBB
  • ZOJ 3329 期望DP
  • C语言 21-结构体
  • Java学习笔记2:当构造方法有多个参数时考虑使用Builder
  • Perl:Perl的一些应用例子。
  • 指针传递参数_for chris
  • COCOS2D-X 精灵创建随笔
  • 太上感应篇原文
  • 汉字简体繁体转换----Javascript
  • 让你飞翔
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 10个最佳ES6特性 ES7与ES8的特性
  • golang 发送GET和POST示例
  • HTTP中GET与POST的区别 99%的错误认识
  • JS实现简单的MVC模式开发小游戏
  • Object.assign方法不能实现深复制
  • PHP面试之三:MySQL数据库
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • spark本地环境的搭建到运行第一个spark程序
  • uva 10370 Above Average
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 类orAPI - 收藏集 - 掘金
  • 写代码的正确姿势
  • scrapy中间件源码分析及常用中间件大全
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​ 全球云科技基础设施:亚马逊云科技的海外服务器网络如何演进
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • ###C语言程序设计-----C语言学习(6)#
  • #{}和${}的区别是什么 -- java面试
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (9)STL算法之逆转旋转
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (二)windows配置JDK环境
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (实战篇)如何缓存数据
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (轉貼) UML中文FAQ (OO) (UML)
  • (状压dp)uva 10817 Headmaster's Headache
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .Net语言中的StringBuilder:入门到精通
  • @RequestMapping 的作用是什么?
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [@Controller]4 详解@ModelAttribute
  • [Android] 修改设备访问权限
  • [Avalon] Avalon中的Conditional Formatting.