2

私はこれが一般的な問題であることを知っています、しかし私は私の解決策を見つけることができませんでした。私はcs193pStandfordコースをフォローしており、講義のスライドでコードを1文字ずつフォローしていますが、Xcode 4.6でも、Xcode4.4では発生しなかったエラーが発生します。

PlayingCardDeck.h:

#import "Deck.h"

@interface PlayingCardDeck : NSObject

@end

PlayingCardDeck.m:

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

@implementation PlayingCardDeck

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

Deck.h:

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

@interface Deck : NSObject

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

Deck.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つの追加の問題が発生します。要するに、私は今では本当に混乱しています...

4

1 に答える 1

2

問題はaddCardです。atTopはDeckのメソッドであり、PlayingCardDeckのメソッドではありません。たぶんPlayingCardDeckはDeckから継承する必要がありますか?または、デッキであるPlayingCardDeckのiVarがありますか?

于 2013-02-06T10:35:00.170 に答える