【问题标题】:How can a child class access the parent's pointer to a property?子类如何访问父类指向属性的指针?
【发布时间】:2014-08-07 22:43:50
【问题描述】:

在一个子类中,我需要重写一个属性获取器。孩子需要比较父母的价值并决定是返回它还是返回其他东西。

在下面的例子中,我有一个 Person 有一个 HeartPersonHeart 都派生自 Unit的修改日期是他整个身体和他所有器官的后者(在这个例子中他只有一个器官 - 心脏)。问题是自动生成的指针_dateModified 没有为子类声明。

@interface Unit
@property (nonatomic, strong) NSDate* dateModified;
@end

@interface UnitHeart : Unit
@end

@interface UnitPerson : Unit
@property (nonatomic, strong) UnitHeart* heart;
@end

@implemenentation UnitPerson

- (NSDate*)dateModified
{
    if (_dateModified.timeIntervalSince1970 > self.heart.timeIntervalSince1970) {
        return _dateModified;
    } else {
        return self.heart.dateModified;
    }
}

@end

【问题讨论】:

    标签: objective-c inheritance properties overriding


    【解决方案1】:

    我相信你所追求的是:

    - (NSDate*)dateModified
    {
        if ([super dateModified].timeIntervalSince1970 > self.heart.dateModified.timeIntervalSince1970) {
            return [super dateModified];
        } else {
            return self.heart.dateModified;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      相关资源
      最近更新 更多