关于OC对象类型数据归档的一个问题

这两天做一个qq登陆系统

注册的时候,用户输入各种信息(name,age,password,gender.头像.....) 存放在一个user对象中,然后想每次注册完都把这个对象现在一个.txt文件里面

之前是用下面这种方法:

将user转换成NSData(对象归档),然后用NSFileHandle将data追加到文件末尾,再读取

可是每次第一次写入文件和读取都没问题,第二次写入也没问题,但是再去读取的时候就总是报错,大概就是文件格式出了问题。

后来我想为什么像NSDictionary这种系统类型的数据就能写入读取没问题,而自己创建的对象类型总是不能追加在末尾

最后得出的结论大概就是:基本数据类型追加是可以的,但是对象类型,追加在文件末尾后,再读取的时候就识别不出里面的对象了(现在也想不起来了具体原因了。。下次想起来了再写)

最后,解决这个问题的方法是:

把对象转换成NSData,把NSData数据放在字典里面,然后把字典写入文件,读出的时候,先读取NSData,解归档,最后获取到对象

大概就这么多吧。。

时间: 2024-10-03 16:56:20

关于OC对象类型数据归档的一个问题的相关文章

IOS中将对象属性列表归档成一个plist文件中

归档步骤: 1.将一个NSDictionary对象归档到一个plist属性列表中 <1> 首先要将数据封装成字典: NSMutableDictionary * dict = [NSMutableDctionary dictionary]; [dict setObject:@"烟灰" forKey:@"name"]; [dict setObject:@"1234567" forKey:@"phoneNumber"];

17开年第一篇Activity之间传递List&lt;T&gt; 以及T对象类型数据的方法

现在转眼都十三了,大家都工作了,自己确还没有在家里闲得慌于是就做个App,谁知道就遇到了Activity间传递实例以及List<T>数据的问题.网上同类型的文章很多,我写只是为了做个笔记预防忘记(其他的我觉得进入不了状态,还是自己的思维好理解一些). 废话不多说下面正题. 要实现上面的需求有几种方式: 1.定义全局静态变量,由一个静态变量集合类管理,至于安全方面,可以把控访问方式,比如验证访问,不过相对来说感觉比较麻烦. 2. Application中设置一个属性,公开读取. 3.使用Seri

struts通过Ajax返回数据时,例如对象类型,没有执行Ajax的回调函数

<result type="json"  name="success">                 <param name="includeProperties">msg.*,对象.*</param>                <!--  <param name="includeProperties">msg</param> -->      

不同类型数据间的转换

对于标准数据类型的转换,编译系统有章可循,知道怎样进行转换.而对用户自己声明的类型,编译系统并不知道怎样进行转换,解决这个问题的关键是让编译系统知道怎样去进行折现转换,需要定义一些专门的函数类处理. 1.转换构造函数 转换构造函数的作用是将一个其它类型的数据转换成一个类的对象以复数类Complex为例,我们来介绍一下 转换构造函数. 转换构造函数是构造函数的重载,它只有一个形参,如 Complex(double r) { _real=r; _imag=0; } 其作用是将double类型的参数r

Python中的对象类型的初步介绍

一:介绍 1.为什么使用内置对象 对象类型是语言的一个部分 内置对象构成了每个python程序的核心部分 2.核心数据类型 数字 字符串 列表 字典 元组 文件 集合 其他类型 编程单元类型 与实现相关的类型 二:数字 1.**是乘方 2.math数学模块 3.random模块 三:字符串 1.介绍 字符串是单个

将JSON字符串反序列化为指定的.NET对象类型

前言: 关于将JSON字符串反序列化为指定的.NET对象类型数据常见的场景主要是关于网络请求接口,获取到请求成功的响应数据.本篇主要讲的的是如何通过使用Newtonsoft.Json中的JsonConvert.DeserializeObject<T>(string value)方法将对应的JSON字符串转化为指定的.NET对象类型数据. 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 如下是一组.NET后台请求接口成功获取到的复杂的JSO

oracle中使用impdp数据泵导入数据提示“ORA-31684:对象类型已经存在”错误的解决

转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/47448751 oracle中使用impdp数据泵导入数据时,假设导入之前已经创建了用户,会提示错误:"ORA-31684:对象类型已经存在".如: 事实上这个问题并不严重,能够先不创建用户,导入时指定一个超级用户导入: impdp system/123456@ORCL DIRECTORY=DUMP_EXP DUMPFILE=EXPDATA.DMP remap_sche

ZeroMQ接口函数之 :zmq_msg_init_data - 从一个指定的存储空间中初始化一个ZMQ消息对象的数据

ZeroMQ 官方地址 :http://api.zeromq.org/4-1:zmq_msg_init_data zmq_msg_init_data(3) ØMQ Manual - ØMQ/3.2.5 Name zmq_msg_init_data - 从一个指定的存储空间中初始化一个ZMQ消息对象的数据 Synopsis typedef void (zmq_free_fn) (void *data, void *hint); int zmq_msg_init_data (zmq_msg_t *m

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

前几篇文章说到了OC中的Foundation框架:http://blog.csdn.net/jiangwei0910410003/article/details/41852835,今天我们来看一下OC中的一个重要知识点:归档 OC中的归档就是将对象写入到一个文件中,Java中的ObjectInputStream和ObjectOutputStream来进行操作的.当然在操作的这些对象都是需要实现一个接口:Serializable,同样的OC中操作的对象也是需要实现一个协议的,后面会说到. 一.已有