自定义类写入文件
来源:互联网 发布:美工平面设计培训 编辑:程序博客网 时间:2024/06/03 13:25
//对自定义类归档
Person.h 遵守<NSCoding>协议
#import <Foundation/Foundation.h>
@class Book;
@interface Person : NSObject<NSCoding>
@property(copy,nonatomic)NSString *name;
@property(copy,nonatomic)NSString *sex;
@property(strong,nonatomic)Book *book;
@end
Person.m
#import "Person.h"
@implementation Person
-(void)encodeWithCoder:(NSCoder *)aCoder
{
[aCoder encodeObject:self.name forKey:@"name"];
[aCoder encodeObject:self.sex forKey:@"sex"];
[aCoder encodeObject:self.book forKey:@"book"];
}
-(id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
if (self) {
self.name = [aDecoder decodeObjectForKey:@"name"];
self.sex = [aDecoder decodeObjectForKey:@"sex"];
self.book = [aDecoder decodeObjectForKey:@"book"];
}
return self;
}
@end
----------------------写入文件-----------------
创建对象
Book *book1 = [[Book alloc] init];
book1.name = @"西游记";
//写入自定义类
Person *p1 = [[Person alloc] init];
Person *p2 = [[Person alloc] init];
Person *p3 = [[Person alloc] init];
p1.name = @"wyj1";
p1.sex = @"男1";
p1.book = book1;
用archive归档
NSMutableData *data = [NSMutableData data];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:p1 forKey:@"person"];
[archiver finishEncoding];
获取文件路径
NSString *doucment = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
doucment = [doucment stringByAppendingString:@"/save"];
将data写入文件
[data writeToFile:doucment atomically:YES];
--------------自定义类对象从文件读取--------------
1.先获取路径
NSString *doucment = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
doucment = [doucment stringByAppendingString:@"/save"];
NSData *data = [NSData dataWithContentsOfFile:doucment];
2.将NSData通过反归档,转化为Personz对象
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
3.通过反归档得到复杂对象
Person *p = [unarchiver decodeObjectForKey:@"person"];
[unarchiver finishDecoding];
- 自定义类写入文件
- 自定义session信息写入文件
- 如何对自定义类进行归档,写入plist文件
- Android 把异常写入文件(自定义异常处理类)
- 日志写入文件,写入sqlserver数据库(自定义参数)
- 将自定义符号写入STYLE文件
- Java向自定义文件夹中写入文件
- Java向自定义文件夹中写入文件
- 自定义对象写入到plist文件
- Java 对象流的用法,将自定义类数组写入文件中
- fstream 将类写入文件
- Unity 读取、写入自定义路径文件,调用System.Windows.Forms
- 自定义异常,并将异常对象写入文件
- (有码)读取和写入自定义对象 plist文件解析
- Android手机自定义一个文件并写入内容
- 启用系统相机,将返回的照片写入自定义文件
- NSUserDefaults写入和读取自定义 用户信息类
- NSUserDefaults写入和读取自定义 用户信息类
- 相机为什么需要白平衡
- scala编程-函数与闭包
- android SharedPreferences类存储路径、本地数据库路径
- C# 数据结构 之 二叉树
- NOJ1184 迷失的邮票 散列表
- 自定义类写入文件
- tomcat启动停止在Initializing Spring root WebApplicationContext
- C语言入门教程20-预处理指令2-条件编译
- refresh的停车场
- java - calculator
- POJ - 3020 Antenna Placement 二分图 最小路径覆盖
- 仿百度搜索框支持拼音 输入联想
- 使用Java语言实现,自动生成10个整数(1~100,求出生成数列中的最大值和最小值,不允许使用Arrays类的sort方法
- [HTML5]简单网页本地音乐播放器