到目前为止,看到oc实现的序列化方式有两种:NSKeyedArchiver,NSPropertyListSerialization. 在这两种序列化方式中,NSData都是序列化的目标.两种方式的不同点在于NSPropertyListSerialization只是针对字典类型的,而NSKeyedArchiver是针对对象的.(补充一下,在Mac OS环境下,还可以使用NSArchiver获得更加精简的二进制序列化内容,但是NSArchiver在iOS环境下不支持). 首先讲NSPropertyL…
1 .全局变量,变量名前加下划线.和系统一致. 2 . nil指针为空   @“”字符串为空 (内容为空)       ==  判断内存地址   基本变量    对于一些基本类型 可以使用==来判断,但对于指针类型,使用==则判断的是指针保存的内容地址是否相等,而不是判断内存地址下的内容是否相等(应该通过方法来判断) 多个指针可以这向同一个对象 3 .判断两个字符串是否相等用 isEqualToString:@“” 4.警告框      不需要设置fram      不需要addSubview …
前言 @interface NSKeyedArchiver : NSCoder @interface NSKeyedUnarchiver : NSCoder 在 OC 语言中,归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象.通常,这个过程包括将(多个)对象写入文件中,以便以后读取该对象.可以使用归档的方法进行对象的深复制. 采用归档的形式来保存数据,该数据对象需要遵守 NSCoding 协议,并且该对象对应的类必须提供 encodeWithCoder: 和 initWit…
/** 1:Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 2:tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除 3:Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除 */ NSArray *paths1=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask , Y…
前言 在 OC 语言中,归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象. 通常,这个过程包括将(多个)对象写入文件中,以便以后读取该对象.可以使用归档的方法进行对象的深复制. 采用归档的形式来保存数据,该数据对象需要遵守 NSCoding 协议,并且该对象对应的类必须提供 encodeWithCoder: 和 initWithCoder: 方法. 前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码. 缺点:归档的形式来保存数据,只能一次性归档…
开篇 1到底这个序列化有何作用? 面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中. 当你写的数据需要本地存储时,即将你的数据写到硬盘上的时候,你就必须对其进行序列化,转换成二进制文件,从而便于在磁盘上的读写,同理在取出的时候必须将其在反序列化,这样才能将数据读出来,就好比加密和解密的过程. 2 为什么将数据写到plist 中的时候,也是存储到本地的磁盘上,但是没有序列化? 大家有没有发现,…
下面只展示项目开发中,本地序列化的示例代码: AuthenticationManager.h #import <Foundation/Foundation.h> #import "GrantViewController.h" #import "MUUser.h" #import "RoomEntity.h" #define kNotificationLogoutDone @"kNotification_logout_done…
iOS可以利用NSKeyedArchiver类将对象序列化成NSData存储在磁盘上,但前提是该对象所属的类必须遵从NSCoding协议. NSCoding协议包含两个方法,要序列化的类必须实现它们 - (void)encodeWithCoder:(NSCoder *)aCoder; //序列化的时候将数据encode (将数据编码) - (nullable instancetype)initWithCoder:(NSCoder *)aDecoder; // 反序列化的时候将数据decode (…
数据持久化:  将内存中的数据按某种格式存进磁盘 数据的种类: 1,结构化的数据 2, 字节流数据 结构化的数据        字节流 内存中结构化的数据   ->   磁盘,  叫: 归档 字节流               结构化 磁盘上的数据        ->  结构化到内存中, 叫:  反归档 字节流              字节流 内存中字节流的数据   ->   磁盘,  叫: 写文件 字节流              字节流 磁盘上的数据        ->  …
1.NSData NSData是Objective-C语言中数据的基本类型,其成分可以理解为字节指针和长度的封装的类,来看看源代码 @interface NSData : NSObject <NSCopying, NSMutableCopying, NSSecureCoding> @property (readonly) NSUInteger length; /* The -bytes method returns a pointer to a contiguous region of mem…