在Objective-C中,可以使用归档(Archiving)来将自定义对象的NSArray保存到文件中。归档是一种将对象转换为二进制数据的过程,以便在需要时可以将其还原回对象。
下面是将自定义对象的NSArray归档到Objective-C中文件的步骤:
encodeWithCoder:
和initWithCoder:
。这两个方法分别用于将对象编码为二进制数据和从二进制数据解码还原对象。@interface CustomObject : NSObject <NSCoding>
@property (nonatomic, strong) NSString *name;
@property (nonatomic, assign) NSInteger age;
@end
@implementation CustomObject
- (void)encodeWithCoder:(NSCoder *)coder {
[coder encodeObject:self.name forKey:@"name"];
[coder encodeInteger:self.age forKey:@"age"];
}
- (instancetype)initWithCoder:(NSCoder *)coder {
self = [super init];
if (self) {
self.name = [coder decodeObjectForKey:@"name"];
self.age = [coder decodeIntegerForKey:@"age"];
}
return self;
}
@end
archiveRootObject:toFile:
方法,将其归档到指定的文件路径。NSArray *customArray = @[customObject1, customObject2, customObject3];
NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"customArray.archive"];
[NSKeyedArchiver archiveRootObject:customArray toFile:filePath];
unarchiveObjectWithFile:
方法,将归档的文件路径传递给它,即可还原出NSArray。NSString *filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject stringByAppendingPathComponent:@"customArray.archive"];
NSArray *customArray = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath];
归档和解档自定义对象的NSArray可以用于保存应用程序的数据,例如用户信息、配置信息等。这样可以方便地将数据持久化到文件中,并在需要时进行读取和使用。
腾讯云相关产品推荐:
领取专属 10元无门槛券
手把手带您无忧上云