您的位置:首页 > 其它

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

2017-08-31 11:29 519 查看
对自定义对象的类实现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"]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: