NSSecureCoding 可能很多人都没用过,但是 NSCoding 大家应该都不陌生;你可以简单的理解为 NSSecureCoding 是 NSCoding 的安全版本。
为什么 NSSecureCoding 比 NSCoding 更安全呢?如果你上网搜索这2者的区别,大部分的回答都是 NSSecureCoding 比 NSCoding 更安全,为什么更安全呢?没说(每次看到这类博主的回答真的很无语,NSSecureCoding 比 NSCoding 更安全还用你说吗?单词都能看出来,既然发一篇文章来说明那起码得解释为什么更安全吧。
)。
在说 NSSecureCoding 之前,我们先回忆一下 NSCoding 的用法。
NSCoding的用法
@interface Person : NSObject<NSCoding>
@property (nonatomic, copy) NSString *name;
@end
@implementation Person
- (instancetype)initWithCoder:(NSCoder *)coder {self = [super init];if (!self) return nil;self.name = [coder decodeObjectForKey:@"name"];return self;
}
- (void)encodeWithCoder:(nonnull NSCode