如何把一个包含自定义对象的数组序列化到磁盘

xiaoxiao2021-02-28  99

对自定义对象的类实现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"]
转载请注明原文地址: https://www.6miu.com/read-29576.html

最新回复(0)