3

根据 Apple 规范,当一个类支持时NSSecureCoding,它应该使用

decodeObjectOfClass:forKey:

在它的 initWithCoder

但是由于字典不知道它的内容,它如何支持安全编码?

与属性类已知的自定义对象相反

4

1 回答 1

2

根据这个答案,基金会容器(数组、字典、集合、其他……?)并不像人们想象的那么安全。显然只有已知的基础类被认为是安全的,这意味着默认实现在使用 NSSecureCoding 时不允许存储自定义对象。

最重要的一句话:

[...] 如果您在编码中直接使用 NSArray() 或其他集合类,则需要检查返回的内容。它们被“安全地”解码到Apple认为解码它们不会导致缓冲区溢出等的程度,这就是你默认得到的全部。[...]

于 2016-12-12T12:26:20.347 回答