【问题标题】:How can NSDictionary support NSSecureCoding, when it doesn't know it's future content当 NSDictionary 不知道它的未来内容时,它如何支持 NSSecureCoding
【发布时间】:2016-12-12 12:05:41
【问题描述】:

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

decodeObjectOfClass:forKey:

在它的 initWithCoder

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

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

【问题讨论】:

    标签: objective-c cocoa cocoa-touch nssecurecoding


    【解决方案1】:

    According to this answer Foundation 容器(Array、Dictionary、Set 等...?)并不像人们想象的那么安全。显然只有已知的基础类被认为是安全的,这意味着默认实现在使用 NSSecureCoding 时不允许存储自定义对象。

    最重要的一句话:

    [...] 如果您直接使用 NSArray() 或其他集合类 你的编码,你需要检查你得到了什么。他们是“安全的” 解码到 Apple 认为解码它们不会 导致缓冲区溢出等,这就是你默认得到的。 [...]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-22
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2020-05-30
      相关资源
      最近更新 更多