ios开发中归档的使用
来源:互联网 发布:百度卫士软件怎么样 编辑:程序博客网 时间:2024/05/14 08:43
1、面向对象的程序在运行的时候会创建一个复杂的对象图,经常要以二进制的方法序列化这个对象图,这个过程叫做Archiving. 二进制流可以通过网络或写入文件中
例:NSKeyedArchiver
========================================================*/
NSString *str = @”abc”;
NSString *astr = @”efg”;
NSArray *Array = [NSArray arrayWithObjects:str, astr, nil];
//保存数据
NSString *Path = [NSSearchPathForDirectori
NSString *filename = [Path stringByAppendingPathCom
[NSKeyedArchiver archiveRootObject:Array toFile:filename];
str = @”a”;
astr = @”";
//加载数据
NSArray *arr = [NSKeyedUnarchiver unarchiveObjectWithFile: filename];
str = [arr objectAtIndex:0];
astr =
NSLog(@”str:%@”,str);
NSLog(@”astr:%@”,astr);
2、在nsstring 的类的定义中已经添加了协议<nscoding> 即他是实现了nscoding 代理的方法的。
@interface NSString : NSObject <NSCopying, NSMutableCopying, NSCoding>
NScoding 是一个协议,主要有下面两个方法
-(id)initWithCoder:(NSCoder *)coder;//从coder中读取数据,保存到相应的变量中,即反序列化数据
-(void)encodeWithCoder:(NSCoder *)coder;// 读取实例变量,并把这些数据写到coder中去。序列化数据
NSCoder 是一个抽象类,抽象类不能被实例话,只能提供一些想让子类继承的方法。
NSKeyedUnarchiver
NSKeyedArchiver
一般是在自己定义的类中需要在.h 文件中加入<NScoding>
在.m 文件众实现他的的两个代理方法,这个代理方法将会被自动调用
例如对一个数据类的封装如下:
@interface Restaurant : NSObject {
}
@property (nonatomic, copy) NSString *shopID;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *discount;
@property (nonatomic, copy) NSString *address;
@end
@implementation Restaurant
@synthesize shopID,title,discount,address;
-(void)dealloc
{
}
- (id)initWithCoder:(NSCoder *)coder
{
}
-(void)encodeWithCoder:(NSCoder *)coder
{
}
@end
下一步就是保存和加载数据了:
注:history对象是一个NSMutableArray数组,用来装Restaurant对象。
-(void) saveArchiver
{
}
-(void) loadArchiver
{
}
- ios开发中归档的使用
- ios开发中归档的使用
- ios开发中归档的使用
- ios开发中归档的使用
- iOS 开发中归档的使用
- ios开发中归档的使用
- ios开发中归档的使用
- ios开发中归档的使用
- ios开发中归档的使用
- ios开发中归档的一些心得
- ios中使用归档
- iOS 归档的使用
- iOS开发过程中一些数据的存储归档
- iOS开发中模拟器归档成功,但是真机归档失败的问题
- iOS开发中模拟器归档成功,但是真机归档失败的问题
- 【iOS开发-存储】使用NSCoding归档和反归档
- ios-day12-04(ios开发中数据存储之NSKeyedArchiver归档(NSCoding)、普通对象如何归档、普通对象的子类如何归档)
- iOS开发之归档
- Cable Modem Initialization and Reinitialization
- 2013年5月23日(7-9ddraw裁剪器)
- Tiny210V2(S5PV210)的U-boot分析
- 黑马程序员_String类和StringBuffer
- poj_3009_Curling 2.0(搜索)
- ios开发中归档的使用
- 记一次笔试
- 写一个能直接执行的.sql文件,如何在这里连接数据库?
- 黑马程序员-交通灯管理系统
- C# sealed 方法
- 杭电ACM1003 MAX_SUM
- 第三章 硬件基础知识学习
- VC++/MFC更新状态栏窗格的文本,设置状态栏的文本
- phpcms v9 关闭远程公告的方法