Objective-C 序列化/反序列化

参考:

[1].https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Archiving/Archiving.html#//apple_ref/doc/uid/10000047i


[cpp]  view plain copy
  1. @interface PKAnimationItem : NSObject<NSCoding>  
  2. {  
  3.     NSString* title_;  
  4.     NSString* type_;  
  5.     NSString* sn_;  
  6.     NSString* imageName_;  
  7.     UIImage*  smallImage_;  
  8.     UIImage*  largeImage_;  
  9.   
  10. }  
  11. @property(nonatomic,retain) NSString*title;  
  12. @property(nonatomic,retain) NSString*type;  
  13. @property(nonatomic,retain) NSString*sn;  
  14. @property(nonatomic,retain) NSString*imageName;  
  15. @property(nonatomic,retain) UIImage*smallImage;  
  16. @property(nonatomic,retain) UIImage*largeImage;  
  17.   
  18. @end  

[cpp]  view plain copy
  1. static  NSString* kAnimationItemTitle               = @"KAMTitle";  
  2. static  NSString* kAnimationItemType                = @"kAMType";  
  3. static  NSString* kAnimationItemImageName           = @"kAMImageName";  
  4. static  NSString* kAnimationItemSn                  = @"kAMSN";  
  5.   
  6. @implementation PKAnimationItem  
  7. @synthesize title = title_;  
  8. @synthesize type  = type_;  
  9. @synthesize sn = sn_;  
  10. @synthesize imageName  = imageName_;  
  11. @synthesize smallImage = smallImage_;  
  12. @synthesize largeImage = largeImage_;  
  13.   
  14. - (void)dealloc  
  15. {  
  16.     [title_         release];  
  17.     [type_          release];  
  18.     [sn_            release];  
  19.     [imageName_     release];  
  20.     [smallImage_    release];  
  21.     [largeImage_    release];  
  22.     [super dealloc];  
  23. }  
  24.   
  25.   
  26. - (void)encodeWithCoder:(NSCoder *)aCoder  
  27. {  
  28.     [aCoder encodeObject:self.title     forKey:kAnimationItemTitle];  
  29.     [aCoder encodeObject:self.type      forKey:kAnimationItemType];  
  30.     [aCoder encodeObject:self.imageName forKey:kAnimationItemImageName];  
  31.     [aCoder encodeObject:self.sn        forKey:kAnimationItemSn];  
  32. }  
  33. - (id)initWithCoder:(NSCoder *)aDecoder  
  34. {  
  35.     self = [super init];  
  36.     if (self)   
  37.     {  
  38.         self.title = [aDecoder decodeObjectForKey:kAnimationItemTitle];  
  39.         self.type  = [aDecoder decodeObjectForKey:kAnimationItemType];  
  40.         self.sn    = [aDecoder decodeObjectForKey:kAnimationItemSn];  
  41.         self.imageName  = [aDecoder decodeObjectForKey:kAnimationItemImageName];  
  42.         self.largeImage = [PKUtils animationImageWithName:self.imageName];  
  43.         NSString* smallImageName = [[self.imageName stringByDeletingPathExtension] stringByAppendingString:@"_s.gif"];  
  44.         self.smallImage = [PKUtils animationImageWithName:smallImageName];  
  45.         self.smallImage = self.smallImage==nil?self.largeImage:self.smallImage;  
  46.     }  
  47.     return self;  
  48. }  
  49.   
  50. - (NSString *)description  
  51. {  
  52.     NSMutableString* des = [NSMutableString stringWithCapacity:0];  
  53.     [des appendFormat:@"\n|---------start-------|\n"];  
  54.     [des appendFormat:@"|title=%@\n",self.title];  
  55.     [des appendFormat:@"|type=%@\n",self.type];  
  56.     [des appendFormat:@"|imageName=%@\n",self.imageName];  
  57.     [des appendFormat:@"|sn=%@\n",self.sn];  
  58.     [des appendFormat:@"\n|--------end--------|\n"];  
  59.   
  60.     return des;  
  61. }  
  62. @end  


使用

1.编码:

[cpp]  view plain copy
  1. [NSKeyedArchiver archiveRootObject:PKAnimationItemArr toFile:arichverPath];  

2.解码:

[cpp]  view plain copy
  1. NSArray* animationArr = [NSKeyedUnarchiver unarchiveObjectWithFile:arichverPath];  

From:http://blog.csdn.net/freshforiphone/article/details/7657936
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值