objective-c基于key的序列化和反序列化
来源:互联网 发布:java http请求 编辑:程序博客网 时间:2024/05/29 03:13
序列化和反序列化自己定义的类,注意以下代码不保证引用计数的正确性,还没有学到这些。
#import <Foundation/Foundation.h>@interface ClassA: NSObject <NSCoding>{NSString *name;int size;float money;NSArray *array;}@property (retain) NSString *name;@property int size;@property float money;@property (copy) NSArray *array;@end@implementation ClassA@synthesize name;@synthesize size;@synthesize money;@synthesize array;-(id) init{if (self = [super init]){name = [NSString stringWithFormat: @"%@=100", @"hello"];size = 99;money = 88.7654321;array = [NSArray arrayWithObjects: @"world", [NSNumber numberWithInt: 10], [NSNull null], nil];}return self;}-(NSString *) description{NSString *desc = [NSString stringWithFormat: @"name=%@ size=%i money=%f array=%@", name, size, money, array];return desc;}-(void) encodeWithCoder: (NSCoder *) aCoder{[aCoder encodeObject: self.name forKey: @"name"];[aCoder encodeInt: self.size forKey: @"size"];[aCoder encodeFloat: self.money forKey: @"money"];[aCoder encodeObject: self.array forKey: @"array"];}-(id) initWithCoder: (NSCoder *) aDecoder{if (self = [super init]){self.name = [aDecoder decodeObjectForKey: @"name"];self.size = [aDecoder decodeIntForKey: @"size"];self.money = [aDecoder decodeFloatForKey: @"money"];self.array = [aDecoder decodeObjectForKey: @"array"];}return self;}@endint main(const int argc, const char *argv[]){NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init]; ClassA *ca = [ClassA new]; NSLog(@"1 %@", ca); [NSKeyedArchiver archiveRootObject: ca toFile: @"ca.bin"]; [ca release]; ClassA *ca1 = [NSKeyedUnarchiver unarchiveObjectWithFile: @"ca.bin"]; NSLog(@"2 %@", ca1);[pool drain];return 0;}
windows下输出结果
C:\GNUstep\msys\1.0\home\pro\cpro>cpro.exe
2015-02-05 10:10:33.989 cpro[5852] 1 name=hello=100 size=99 money=88.765434 array=(world, 10, "<null>")
2015-02-05 10:10:34.033 cpro[5852] 2 name=hello=100 size=99 money=88.765434 array=(world, 10, "<null>")
2015-02-05 10:10:33.989 cpro[5852] 1 name=hello=100 size=99 money=88.765434 array=(world, 10, "<null>")
2015-02-05 10:10:34.033 cpro[5852] 2 name=hello=100 size=99 money=88.765434 array=(world, 10, "<null>")
序列化以后生成的二进制文件。
0 0
- objective-c基于key的序列化和反序列化
- Objective-C 序列化/反序列化
- objective-c自定义类对象的序列化和反序列化
- 序列和反序列化
- 序列和反序列化
- C#+ArcEngine 序列化和反序列化AE对象
- C# 序列化和反序列化
- 基于Json序列化和反序列化通用的封装
- objective-C中的序列化(serialize)与反序列化(deserialize)
- objective-C中的序列化(serialize)与反序列化(deserialize)
- c#、java的序列化、反序列化
- JSON和plist的序列化和反序列化
- 【C#】 Xml文件序列化和反序列化,自动生成DataModel的.cs文件。
- 二叉树的序列化和反序列化实现(C++)
- 二叉树的序列化和反序列化(C++) (leetcode)
- java 的序列化和反序列化的问题
- jackson的序列化和反序列化的实现
- 序列化和反序列化
- 学长帮忙体
- SecureCRT failed to open the host key database file
- 转载大神IOS开发系列【2】--C语言之基础知识
- C Primer Plus 练习 6-2
- 获取Android设备唯一标识码
- objective-c基于key的序列化和反序列化
- 基准集合测试包(list,set,map)
- java nio 基础(二)
- Asp.net生成l文件并下载-----解决使用迅雷下载页面而不是文件的问题
- 彻底搞定C指针-函数名与函数指针
- 1020. Tree Traversals (25)
- SQL基础(五)-update2
- 《鸟哥的Linux私房菜》读书笔记0
- oracle 去重