NSMutableArray属性未正确继承

时间:2013-07-20 19:56:26

标签: ios objective-c inheritance

我有一个类MatchingGame,它包含这个属性:

@property (strong, nonatomic) NSMutableArray *cards;

MatchingGame也有一个懒惰实例化卡片的setter,如下所示:

- (NSMutableArray *)cards
{
    if (!_cards) _cards = [[NSMutableArray alloc] init];
    return _cards;
}

CardMatchingGame类继承自Matching游戏,因此我希望能够访问子类中的cards属性。但是,除非我向CardMatchingGame.m @property代码块添加@interface ... end,否则我会收到Property 'cards' not found on object of type 'CardMatchingGame'

我是iOS和Objective-C编程的新手,所以我不知道是否存在我遗漏的遗传问题。难道我不能在超类中定义卡并在子类中访问它吗?

2 个答案:

答案 0 :(得分:1)

您是否在MatchingGame的.h文件中声明了@property (strong, nonatomic) NSMutableArray *cards;?如果是这样,它将由CardMatchingGame继承。

答案 1 :(得分:0)

假设ClassB继承自ClassA。我意识到这样的继承。

<强> ClassA.h

@interface ClassA
//...
@property (strong, nonatomic) NSMutableArray *cards;
@end

<强> ClassB.m

@implementation ClassB

    - (void)foo
    {
        //...
        self.cards = someValue;
        //...
    }
@end