根据 Apple 规范,当一个类支持时NSSecureCoding
,它应该使用
decodeObjectOfClass:forKey:
在它的 initWithCoder
但是由于字典不知道它的内容,它如何支持安全编码?
与属性类已知的自定义对象相反
根据 Apple 规范,当一个类支持时NSSecureCoding
,它应该使用
decodeObjectOfClass:forKey:
在它的 initWithCoder
但是由于字典不知道它的内容,它如何支持安全编码?
与属性类已知的自定义对象相反
根据这个答案,基金会容器(数组、字典、集合、其他……?)并不像人们想象的那么安全。显然只有已知的基础类被认为是安全的,这意味着默认实现在使用 NSSecureCoding 时不允许存储自定义对象。
最重要的一句话:
[...] 如果您在编码中直接使用 NSArray() 或其他集合类,则需要检查返回的内容。它们被“安全地”解码到Apple认为解码它们不会导致缓冲区溢出等的程度,这就是你默认得到的全部。[...]