对自定义对象的类实现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"]