【问题标题】:When do I use the initWithCoder: method?什么时候使用 initWithCoder: 方法?
【发布时间】:2010-11-17 20:03:21
【问题描述】:

我应该什么时候使用 initWithCoder: 方法?

【问题讨论】:

    标签: iphone iphone-sdk-3.0 ios4


    【解决方案1】:

    是的,如果您在 IB 中使用自定义类,那么这些对象将使用 initWithCode: 方法进行实例化。因此,在您的班级中,您将覆盖:

    -(id) initWithCoder:(NSCoder*)aDecoder {
        if (! (self = [super initWithCoder:aDecoder]))
            return nil;
    
        // object has been created from IB... do initialization stuff here
    
        return self;
    }
    

    【讨论】:

      【解决方案2】:

      当您处理已归档的对象时,您应该使用initWithCoder: 方法。例如,当您专门使用NSKeyedUnarchiver 创建这些归档对象时,或者当您需要将自定义初始化代码添加到来自 xib 文件的对象时。

      【讨论】:

      • 我问的原因是因为我创建了 UIScrollView 的子类,我想将它设置在 xib 中的位置并获取该信息并使用它来设置子类,我会使用initWithCoder:为了这样的事情?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 2022-01-20
      • 2012-03-23
      • 2021-10-28
      • 2011-08-28
      相关资源
      最近更新 更多