如何把一个包含自定义对象的数组序列化到磁盘
2017-08-31 11:29
519 查看
对自定义对象的类实现NSCoding协议,例如
用NSKeyedArchiver对数组进行归档
#import <Foundation/Foundation.h> @interface RegUserInfo : NSObject <NSCoding> { NSString *siteName; NSString *siteAddress; NSString *userName; UIImage *logoImage; } @property (nonatomic, strong) NSString *siteName, *siteAddress, *userName; @property (nonatomic, strong) UIImage *logoImage; @end
-(void) encodeWithCoder:(NSCoder *)encoder { [encoder encodeObject:siteName forKey:@"siteName"]; [encoder encodeObject:siteAddress forKey:@"siteAddress"]; [encoder encodeObject:userName forKey:@"userName"]; [encoder encodeObject:logoImage forKey:@"logoImage"]; } -(id) initWithCoder:(NSCoder *)decoder { siteName = [decoder decodeObjectForKey:@"siteName"]; siteAddress = [decoder decodeObjectForKey:@"siteAddress"]; logoImage = [decoder decodeObjectForKey:@"userName"]; siteLogo = [decoder decodeObjectForKey:@"logoImage"]; return self; }
用NSKeyedArchiver对数组进行归档
/*序列化成arch.dat文件*/ [NSKeyedArchiver archiveRootObject:userInfo toFile:@"arch.dat"]; /*由文件arch.dat反序列化成RegUserInfo对象*/ RegUserInfo *newUserInfo = [NSKeyedUnarchiver unarchiveObjectWithFile: @"arch.dat"]
相关文章推荐
- 整理--iOS如何把一个包含自定义对象的数组序列化到磁盘
- fastJson如何序列化一个包含list对象的Map对象,如Map<String,List<T>>类型的对象
- Java序列化 如何把多个对象存储在一个文件中
- 如何高效检查一个数组中是否包含某个值?
- 如何向以json对象为元素的数组中追加一个新的元素
- java如何将一个序列化对象添加到压缩文件中
- js 如何判断一个对象是不是数组
- 给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组
- 如何高效的检测一个数组是否包含某一个值
- 将对象序列化成为一个byte数组
- jSON学习拓展:如何把一个json对象赋值给另一个json数组?
- Java 中如何序列化一个对象
- javascript如何判断一个对象是不是数组
- 如何遍历删除一个数组中的对象
- 如何判断一个数组中是否包含一个字符或字符串
- 一个数组中包含对象,对象中包含数组取值
- 在使用反射中,Object代表一个数组对象,如何转化为数组
- 一个经过改良的XMLHelper(包含了序列化,反序列化,创建xml文件,读取节点,C#对象与xml文件的相互转换等等。)
- Javascript如何判断一个变量是普通变量还是数组还是对象?