【问题标题】:Does NSCoding automatically instantiate the correct derived classNSCoding 是否自动实例化正确的派生类
【发布时间】:2014-07-02 12:10:37
【问题描述】:

我想要:一些继承自符合NSCoding 的基类的派生类。

当我解码时,我是否需要“做一些事情”来处理实例化正确的派生类,还是 NSCoding 会为我处理所有这些?

【问题讨论】:

    标签: objective-c nscoding


    【解决方案1】:

    您不需要为 NSCoding 做任何事情来为您实例化正确的子类。它会自动执行此操作。

    如果您的基类需要自行编码或解码,请不要忘记您需要在实现中调用 super:

    - (void)encodeWithCoder:(NSCoder *)coder
    {
      [super encodeWithCoder:coder];
    
      // And do your own encoding.
    }
    

    - (instancetype)initWithCoder:(NSCoder *)aDecoder
    {
      if(self = [super initWithCoder: aDecoder]) 
      {
        // Do your own decoding here.
      }
      return self;
    }
    

    【讨论】:

    • :-) 这是“是”还是“否”?
    • 如果你不想覆盖或添加一些额外的属性来存储在归档器中,NSCoding 会为你做这一切
    • 酷,谢谢。我会提交一个编辑来总结一下,还是你愿意?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多