對實現(xiàn)了NSSecureCoding協(xié)議的類進行數(shù)據(jù)本地化
@implementation NSData (AlivcHelper)
+ (NSData *)dataWithObject:(id<NSSecureCoding>)object{
NSMutableData *data = [[NSMutableData alloc]init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc]initForWritingWithMutableData:data];
[archiver setRequiresSecureCoding:YES];
[archiver encodeObject:object forKey:NSKeyedArchiveRootObjectKey];
[archiver finishEncoding];
return data;
}
+ (nullable id<NSSecureCoding>)customInstanceFromData:(NSData *)data forClassType:(Class)classType {
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc]initForReadingWithData:data];
[unarchiver setRequiresSecureCoding:YES];
id object = [unarchiver decodeObjectOfClass:[classType class] forKey:NSKeyedArchiveRootObjectKey];
return object;
}