通过NSCoding能实现像JAVA一样能够实现对象的序列化,可以保存对象到文件里。

 写了个小demo验证了下。

 直接上demo吧。

 UserEntity


//
//  UserEntity.m
//  NSCodingDemo
//
//  Created by   on 11-5-20.
//  Copyright 2011  , Inc. All rights reserved.
//

#import 
"UserEntity.h"
#import 
"AddressEntity.h"

#define SAMPLEDATA_KEY_USERNAME (@"userName")  
#define SAMPLEDATA_KEY_GENDER (@"gender")  
#define SAMPLEDATA_KEY_AGE (@"age")
#define k_FRIENDS (@"frinds")
#define k_ADDRESS (@"address")
#define k_userEntity_addresses (@"addresses")

@implementation UserEntity
@synthesize userName 
= _userName;
@synthesize gender   
= _gender;
@synthesize age      
= _age;
@synthesize friends  
= _friends;
@synthesize address  
= _address;
@synthesize addresses 
= _addresses;

-(void)dealloc
{
    [self.userName release];
    [self.friends release];
    [self.address release];
    [self.addresses release];
    [super dealloc];
}

  
- (void)encodeWithCoder:(NSCoder*)coder  
  {  
      [coder encodeObject:self.userName forKey:SAMPLEDATA_KEY_USERNAME];
      [coder encodeInt:self.age forKey:SAMPLEDATA_KEY_AGE];
      [coder encodeBool:self.gender forKey:SAMPLEDATA_KEY_GENDER];
      [coder encodeObject:self.friends forKey:k_FRIENDS];
      [coder encodeObject:self.address forKey:k_ADDRESS];
      [coder encodeObject:self.addresses forKey:k_userEntity_addresses];
  }  

  
- (id)initWithCoder:(NSCoder*)decoder  
  {  
      
if (self = [super init])
      {
          
if (decoder == nil)
          {
              
return self;
          }
          self.userName 
= [decoder decodeObjectForKey:SAMPLEDATA_KEY_USERNAME];
          self.gender 
= [decoder decodeBoolForKey:SAMPLEDATA_KEY_GENDER];
          self.age 
= [decoder decodeIntForKey:SAMPLEDATA_KEY_AGE];
          self.friends 
= [decoder decodeObjectForKey:k_FRIENDS];
          self.address 
= [decoder decodeObjectForKey:k_ADDRESS];
          self.addresses 
= [decoder decodeObjectForKey: k_userEntity_addresses];
      }
      
return self;
  } 

@end

相关文章:

  • 2021-11-19
  • 2021-07-26
  • 2021-04-12
  • 2022-01-01
  • 2022-12-23
  • 2021-09-19
猜你喜欢
  • 2022-01-04
  • 2021-08-21
  • 2022-12-23
  • 2021-09-14
  • 2022-12-23
  • 2021-12-12
相关资源
相似解决方案