2013-07-20 94 views
0

我有一個類,MatchingGame,其中包含此屬性:NSMutableArray的財產無法正常繼承

@property (strong, nonatomic) NSMutableArray *cards; 

MatchingGame也有一個setter懶洋洋地實例化卡,就像這樣:

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

類CardMatchingGame繼承匹配遊戲,所以我希望能夠訪問子類中的cards屬性。然而,除非我添加一個@property到CardMatchingGame.m的@interface ... end代碼塊,我得到一個Property 'cards' not found on object of type 'CardMatchingGame'

我是新來的iOS和Objective-C編程,所以我不知道是否有關於繼承我失蹤的怪癖。我不應該能夠在超類中定義卡並在子類中進行訪問嗎?

回答

1

您是否在MatchingGame的.h文件中聲明瞭@property (strong, nonatomic) NSMutableArray *cards;?如果是這樣,它將由CardMatchingGame繼承。

+0

這做到了。我將CardMatchingGame重構爲MatchingGame,並錯過了將卡的聲明移動到標題。我只在實現文件中擁有它。謝謝。 –

0

假設ClassB繼承自ClassA。我意識到像這樣的繼承。

ClassA.h

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

ClassB.m

@implementation ClassB 

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