2

我知道这是一个常见问题,但是我找不到我的解决方案。我正在学习 cs193p Standford 课程,在讲座幻灯片上逐个字母地跟踪代码,而 Xcode 4.6 仍然会产生一个错误,而 Xcode 4.4 并没有发生这种情况。

扑克牌甲板.h:

#import "Deck.h"

@interface PlayingCardDeck : NSObject

@end

扑克牌甲板.m:

#import "PlayingCardDeck.h"
#import "PlayingCard.h"

@implementation PlayingCardDeck

...
                [self addCard:card atTop:YES]; //problem occurs here
...
@end

甲板.h:

#import <Foundation/Foundation.h>
#import "Card.h"

@interface Deck : NSObject

- (void)addCard:(Card *)card atTop:(BOOL)atTop;
...
@end

甲板.m:

#import "Deck.h"

@interface Deck()
@property (strong, nonatomic) NSMutableArray *cards;
@end

@implementation Deck
...
- (void)addCard:(Card *)card atTop:(BOOL)atTop
{
    if (atTop)
        [self.cards insertObject:card atIndex:0];
    else
        [self.cards addObject:card];
}
...
@end

按逻辑, addCard:atTop: 应该是 (+) 方法?在讲座中,它是一个(-)就好了。此外,在尝试将其更改为 (+) 方法后,它会产生 6 个额外的问题,每次我要使用“self”时使用完全不同的语法。总之,我现在真的很困惑......

4

1 回答 1

2

问题是 addCard: atTop 是 Deck 的方法,而不是 PlayingCardDeck 的方法。也许 PlayingCardDeck 应该从 Deck 继承?或者有一个 iVar 的 PlayingCardDeck 是一个套牌?

于 2013-02-06T10:35:00.170 回答