对自定义对象的类实现NSCoding协议,例如
#import <Foundation/Foundation.h>
@interface RegUserInfo : NSObject <NSCoding> {
NSString *siteName;
NSString *siteAddress;
NSString *userName;
UIImage *logoImage;
}
@property (nonatomic, strong) NSString *siteName, *siteAddress, *userName;
@property (nonatomic, strong) UIImage *logoImage;
@end
-(void) encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:siteName forKey:@"siteName"];
[encoder encodeObject:siteAddress forKey:@"siteAddress"];
[encoder encodeObject:userName forKey:@"userName"];
[encoder encodeObject:logoImage forKey:@"logoImage"];
}
-(id) initWithCoder:(NSCoder *)decoder {
siteName = [decoder decodeObjectForKey:@"siteName"];
siteAddress = [decoder decodeObjectForKey:@"siteAddress"];
logoImage = [decoder decodeObjectForKey:@"userName"];
siteLogo = [decoder decodeObjectForKey:@"logoImage"];
return self;
}
用NSKeyedArchiver对数组进行归档
/*序列化成arch.dat文件*/
[NSKeyedArchiver archiveRootObject:userInfo toFile:@"arch.dat"];
/*由文件arch.dat反序列化成RegUserInfo对象*/
RegUserInfo *newUserInfo = [NSKeyedUnarchiver unarchiveObjectWithFile: @"arch.dat"]